Linux硬盘读写测速
Linux服务器想要知道硬盘的读写是否能满足服务的需要,我们可以使用Linux自带的dd命令测试硬盘的读写速度,方法如下:
Linux硬盘写入速度:
time dd if=/dev/zero of=/disk/test bs=2k count=1000000
Linux硬盘读取速度:
time dd if=/disk/test of=/dev/null bs=2k
命令详解:
time
用于计时;dd
用于复制,从if
读出,写到of
;if=/dev/zero
不产生IO,因此可以用来测试纯写速度;同理of=/dev/null
不产生IO,可以用来测试纯读速度;bs
是每次读或写的大小,即一个块的大小;count
是读写块的数量,相乘就是读写数据量大小。
优化改进
sync; (time dd if=/dev/zero of=/disk/test bs=1000K count=20000); sync; rm -f /disk/test
解释:
-
sync
命令用来刷新文件系统的缓冲区,执行sync
命令实际的作用是把内存中的数据缓冲写入到磁盘中。先执行下sync
命令,是为了减少对后面测试的影响。也可以使用echo 3 > /proc/sys/vm/drop_caches
来清除缓存。 -
time dd
这条命令行这里就不讲了。 -
最后删除生成的测试文件呀。
重点是sync
命令,因为当dd
退出时,这条命令行提交的大部分内容都在内存缓冲区(写缓存),甚至如果机器的内存相比于你提交的数据要大得多,那可能数据都在内存中,而再执行sync
才能将内存中的数据写入到磁盘中,否则就成了测试内存的写速度,那显然不是你想要的结果。
[end]
- 作者:xmlwch
- 原文链接:https://m730.xmlwch.cn/2022/03/31/chlinux/linux-disk-speed.html
- 版权声明:本作品采用 知识共享 署名-相同方式共享 4.0 国际(CC BY-SA 4.0)许可协议 进行许可,转载无需与我联系,但请注明出处。