zoukankan      html  css  js  c++  java
  • 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=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 #进行上下行带宽测试。

    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为数据发送速率,进行上下行带宽测试

  • 相关阅读:
    内功心法-代理模式
    java.lang.NumberFormatException: multiple points
    MarkDown语法-使用博客园的markDown编辑
    MarkDown语法
    linux下安装tomcat——service tomcat does not support chkconfig
    关于git&github的操作
    activeMQ 本地测试
    spring AOP 的坑~
    js高级面试题
    js的内存管理
  • 原文地址:https://www.cnblogs.com/paul8339/p/14647118.html
Copyright © 2011-2022 走看看