Linux磁盘IO查看
一、磁盘IO
实时IO性能查看:
1、用top命令查看
0.0% wa 等待输入输出的CPU时间百分比
0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多
2、sar 命令
sar -d -p 1 2 |
---|
其中, “-d”参数代表查看磁盘性能,“-p”参数代表将 dev 设备按照 sda,sdb……名称显示,“1”代表每隔1s采取一次数值,“2”代表总共采取2次数值
-
await:平均每次设备 I/O 操作的等待时间(以毫秒为单位)
-
svctm:平均每次设备 I/O 操作的服务时间(以毫秒为单位)
-
%util:一秒中有百分之几的时间用于 I/O 操作
对于磁盘 IO 性能,一般有如下评判标准:
正常情况下 svctm 应该是小于 await 值的,而 svctm 的大小和磁盘性能有关,CPU 、内存的负荷也会对 svctm 值造成影响,过多的请求也会间接的导致 svctm 值的增加。
await 值的大小一般取决与 svctm 的值和 I/O 队列长度以 及I/O 请求模式,如果 svctm 的值与 await 很接近,表示几乎没有 I/O 等待,磁盘性能很好,如果 await 的值远高于 svctm 的值,则表示 I/O 队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。
%util 项的值也是衡量磁盘 I/O 的一个重要指标,如果 %util 接近 100% ,表示磁盘产生的 I/O 请求太多,I/O 系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。
磁盘IO压测:
3、dd命令,用于磁盘IO压测
测试存写入能力
dd if=/dev/zero of=test.file bs=64k count=10000 oflag=direct |
---|
-
/dev/zero 伪设备,会产生空字符流,对它不会产生 IO 。
-
if 参数用来指定 dd 命令读取的文件。
-
of 参数用来指定 dd 命令写入的文件。
-
bs 参数代表每次写入的块的大小。
-
count 参数用来指定写入的块的个数。
-
offlag=direc 参数测试 IO 时必须指定,代表直接写如磁盘,不使用 cache 。
因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。命令结尾添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过hdd缓存。
测试存读取能力
dd if=test.file of=/dev/null iflag=direct |
---|
因为test.file是一个文件,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在test.file上,也相当于测试磁盘的读能力。(Ctrl+c终止测试)
测试同时读写能力
dd if=/dev/sdb of=/test.file bs=64k count=10000 oflag=direct |
---|
生成640Mb的文件
注意:dd 只能提供一个大概的测试结果,而且是连续 I/O 而不是随机 I/O,理论上文件规模越大,测试结果越准确。 同时,iflag/oflag 提供 direct 模式,direct 模式是把写入请求直接封装成 I/O 指令发到磁盘,非 direct 模式只是把数据写入到系统缓存就认为 I/O 成功,并由操作系统决定缓存中的数据什么时候被写入磁盘
二、网络IO、带宽测试
1、ping
查看是否有时延
2、scp命令、winscp、xftp等上传工具
查看拷贝、上传速率是否正常
3、iperf工具
Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能。Iperf具有多种参数和UDP特性,可以根据需要调整。Iperf可以报告带宽,延迟抖动和数据包丢失。进行测试时分为服务端和客户端。
安装
yum install iperf -y |
---|
TCP模式测试
服务端
|
---|
UDP模式测试
服务端
|
---|