1、查看磁盘IO性能
1.1、 top 命令
top 命令通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能,如果这个数值过大,很可能是磁盘 IO 太高了,当然也可能是其他原因,例如网络 IO 过高等。
1.2、 sar 命令
sar 命令查看当前磁盘性能的命令为:sar -d -p12
await:平均每次设备 I/O 操作的等待时间
svctm:平均每次设备 I/O 操作的服务时间
%util:一秒中有百分之几的时间用于 I/O 操作
如果 svctm 的值与 await 很接近,表示几乎没有 I/O 等待,磁盘性能很好,如果 await 的值远高于 svctm 的值,则表示 I/O 队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。
查看一天前的报告;可以查看保存在/var/log/sa/下的sar日志
1.3、 iostat 命令
1.4、 vmstat 命令
bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是 1024 byte 。
bo 块设备每秒发送的块数量,例如我们读取文件,bo 就要大于0。bi 和 bo 一般都要接近 0,不然就是 IO 过于频繁,需要调整
2. 测试磁盘 IO 性能
2.1、hdparm 命令
hdparm 命令提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数,注意该命令只能测试磁盘的读取速率
从测试结果看出,带有缓存的读取速率为:7803.05MB/s ,磁盘的实际读取速率为:374.90 MB/s
2.2、dd 命令
测试写性能命令:
该分区磁盘写入速率为 159M/s
测试读性能命令:
该分区的读取速率为 440MB/s
/dev/zero 伪设备,会产生空字符流,对它不会产生 IO 。
if 参数用来指定 dd 命令读取的文件。
of 参数用来指定 dd 命令写入的文件。
bs 参数代表每次写入的块的大小。
count 参数用来指定写入的块的个数。
offlag=direc 参数测试 IO 时必须指定,代表直接写如磁盘,不使用 cache
2.3 、fio 命令
参考链接:
https://www.cnblogs.com/mauricewei/p/10502539.html
https://www.cnblogs.com/happy-king/p/9234122.html
https://elf8848.iteye.com/blog/2168876
https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/sar.html
http://blog.sina.com.cn/s/blog_62b832910102w3zt.html
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html
https://linux.cn/article-6104-1.html
http://www.runoob.com/linux/linux-comm-hdparm.html