在linux系统中,如果有大量读的请求,默认情况下linux系统的请求队列有可能会应付不过来,不要激动,我们可以修改linux的动态调整请求队列数........(你懂的)
默认的的请求队列数放在/sys/block/hdc/queue/nr_requests 这个文件里面。

$cat /sys/block/hdc/queue/nr_requests

128

咱们看默认情况下请求队列是128.

现在我们来用time+dd 来测试硬盘的读写速度!!

$time dd if=/dev/zero of=tongrui.txt bs=1M count=1000

1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 65.9483 seconds, 15.9 MB/s

real 1m6.399s
user 0m0.002s
sys 0m6.624s

如上我用1G的文件去测试请求,花了1分6秒。

现在我们把/sys/block/hdc/queue/nr_requests中的值128改成512,然后继续测试一遍

$time dd if=/dev/zero of=tongrui.txt bs=1M count=1000

1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 13.3316 seconds, 78.7 MB/s

real    0m13.544s
user    0m0.004s
sys     0m2.131s

咱们来看看,只用了13秒。一样大的文件,改完请求队列数之后时间大大的减少了,由此咱们可以得出一个结论,适当的时候调整nr_requests 文件中的参数可以大幅提升磁盘的吞吐量,但是也是有缺点的!缺点就是要牺牲一定的内存,所以在调优的时候要对多方面对权衡考虑。