在LINUX系统中,如果有大量读请求,默认的请求队列或许应付不过来,我们可以

动态调整请求队列数来提高效率,默认的请求队列数存放在/sys/block/xvda/queue/nr_requests 文件中,

注意:/sys/block/xvda ,这里 xvda 写的是你自己的硬盘名,因我的是vps所以是xvda,有可能的参数是
sda hda....等等。

如果你不清楚可以,fdisk -l查看一下自己的物理磁盘名称。

[root@leda03 public_html]# fdisk -l

Disk /dev/xvdd: 117 MB, 117549056 bytes

255 heads, 63 sectors/track, 14 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes



Disk /dev/xvdd doesn't contain a valid partition table



Disk /dev/xvda: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes



Device Boot      Start         End      Blocks   Id  System

/dev/xvda1   *           1          13      104391   83  Linux

/dev/xvda2              14        2610    20860402+  8e  Linux LVM

 
Centos系统




查看磁盘的默认请求队列:

# cat /sys/block/xvda/queue/nr_requests

128

默认请求队列数为:128。
 
现在我们来测试请求一个1G大小的文件:



# time dd if=/dev/zero of=test bs=1M count=1000 

1000+0 records in 

1000+0 records out 



1048576000 bytes (1.0 GB) copied, 60.2789 seconds, 17.4
MB/s

real    1m0.553s

user    0m0.043s 

sys     0m6.363s



由此看出,共花了1分55秒,现在把 nr_requests 的 128 改成 512 再试下:

# echo 512 > /sys/block/xvda/queue/nr_requests 

# cat /sys/block/hda/queue/nr_requests 

512 


# rm -f  test 

# time dd if=/dev/zero of=test bs=1M count=1000 

1000+0 records in 

1000+0 records out 



1048576000 bytes (1.0 GB) copied, 28.298 seconds, 37.1
MB/s

real    0m28.787s

user    0m0.040s

sys     0m5.982s



同样大小的文件,改成 512 后只需要 28  秒钟,由此可以结论出,通过适当的调整

nr_requests 参数可以大幅提升磁盘的吞吐量,缺点就是你要牺牲一定的内存。



建议:通过适当的调整nr_requests 参数可以大幅提升磁盘的吞吐量,缺点就是你要牺牲一定的内存。但是这个牺牲的比例,目前
我还没有一个比较严格的数字,所以大家还是要慎重的去更改为好,最后先做一个压力测试,再去进行更改。当然如果你服务器的内存很足,就不必有此顾虑了。

linux磁盘读写性能优化的更多相关文章

  1. GNU Linux高并发性能优化方案

    /*********************************************************** * Author : Samson * Date : 07/14/2015 * ...

  2. Oracle在Linux下的性能优化

    Oracle数据库内存参数的优化 Ø       与oracle相关的系统内核参数 Ø       SGA.PGA参数设置   Oracle下磁盘存储性能优化 Ø       文件系统的选择(ext2 ...

  3. 基于linux(CentOS7)数据库性能优化(Postgresql)

    基于CentOS7数据库性能优化(Postgresql) 1.  磁盘 a)         Barriers IO i.              通过查看linux是否加载libata,确定是否开 ...

  4. 万字长文详解HBase读写性能优化

    一.HBase 读优化 1. HBase客户端优化 和大多数系统一样,客户端作为业务读写的入口,姿势使用不正确通常会导致本业务读延迟较高实际上存在一些使用姿势的推荐用法,这里一般需要关注四个问题: 1 ...

  5. Linux 下网络性能优化方法简析

    概述 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑.由于数据包的转发一般是具备路由功能的设备所关注,在本文中 ...

  6. DD测磁盘读写性能

    1.测试磁盘的纯写入性能 dd if=/dev/zero of=/file [oracle@11g ~]$ touch ddTest[oracle@11g ~]$ time dd if=/dev/ze ...

  7. 磁盘IO性能优化-实践

    RAID卡缓存策略调整 原因详解 操作实例 I/O 调度算法 文件系统journal 磁盘挂载参数 操作实例 性能数据对比 RAID卡缓存策略调整 可以将RAID卡缓存策略由No Write Cach ...

  8. 3、mysql读写性能优化方法

    1.当表格特别多的时候,所新建的表格一定注意索引,数据库内部对索引的处理能够很好的优化查询读写性能

  9. linux磁盘IO读写性能优化

    在LINUX系统中,如果有大量读请求,默认的请求队列或许应付不过来,我们可以 动态调整请求队列数来提高效率,默认的请求队列数存放在/sys/block/xvda/queue/nr_requests 文 ...

随机推荐

  1. .net 执行sql包含go语句的处理

    今天工作中遇到了这个问题,其实只要把GO替换成“;”就行了,其它人写的例子用Split来拆分这一个脚本文件的内容,完全没有必要

  2. 说说JavaScriptCore

    http://www.jianshu.com/p/1328e15416f3/comments/1724404 javascript目前看来仍是世界上最流行的语言,不管在web.服务端还是客户端都有广泛 ...

  3. 迭代器学习之一:使用IEnumerable和IEnumerator接口

    写博客是检验我学习的成果之一以及自我总结的一种方式,以后会经常利用这种方式进行技术交流和自我总结,其中认识不深难免会有错误,但是一直懂得不懂就问,不懂就学的道理! 1.首先看一个简单的列子 , , , ...

  4. 正则表达式之g标志,match和 exec

    1.g标志    g标志一般是与match和exec来连用,否则g标志没有太大的意义. 先来看一个带g标志的例子: var str = "tankZHang (231144) tank yi ...

  5. 10W -python

    计算2 3 4 加运算符 小于30 >>> new=[''.join(('2',op,'3')) for op in ops] >>> print(new) ['2 ...

  6. nyoj 106背包问题(贪心专题)

    背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...

  7. mysql 主从master-slave同步复制 配置,为读写分离准备

    1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...

  8. PhpStorm 2016.3 For Mac 重大里程碑更新 -- 终于解决了不能输入中文标点符号的重大bug

    PhpStorm 2016.3 For Mac 重大里程碑更新 1.[终于解决了]不能输入中文标点符号的重大bug,如 逗号“,”.“.”: 2.可以在一个窗体中,同时打开多个项目: 3.其他... ...

  9. HTTP响应消息中的状态代码

  10. git pull request

    如何发 PR 以下以 wiki-pages 为例 把项目 fork 到自己名下,然后 clone 到本地 git clone git@code.xiaojukeji.com:yexiliang/wik ...