一、磁盘IO

实时IO性能查看:

1、用top命令查看

Linux磁盘IO查看_服务端

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次数值

Linux磁盘IO查看_服务端_02

 

  • 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=1000000 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=1000000 oflag=direct

 

注意: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模式测试

服务端
iperf -s

客户端
iperf -c 192.168.122.1 -t 60 #在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。
iperf -c 192.168.122.1 -P 30 -t 60 #客户端同时向服务器端发起30个连接线程。
iperf -c 192.168.122.1 -d -t 60 -i 2 #进行上下行带宽测试。

 

 

Linux磁盘IO查看_Linux_03

 

 

UDP模式测试

服务端
iperf -u -s
# -u表示以udp模式运行,-s表示作为服务端

客户端
iperf -u -c 192.168.122.1 -b 100M -t 60 -i 2
#解释:在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒

iperf -u -c 192.168.122.1 5M -P 30 -t 6
#客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率

iperf -u -c 192.168.122.1 -b 100M -d -t 60
#以100M为数据发送速率,进行上下行带宽测试