linux查看磁盘io使用情况

linux查看磁盘io使用情况top 命令 vmstat 命令 iostat 命令 iotop 命令 pt ioprofile 命令 top 11 41 22up51min 2users loadaverage 0 01 0 04 0 01Tasks 130total 1running 129sleeping 0stopped 0zombieCpu s 0 2 us 0 1 sy 0 0 ni 99 2 id 0 4 wa 0 0 hi 0 0 si 0 0 stMem 4151

六种方法

  top命令、vmstat命令、iostat命令、iotop命令、pt-ioprofile命令、pidstat命令

一、 top命令

具体的解释如下:
  Tasks: 130 total 进程总数
  1 running 正在运行的进程数
  129 sleeping 睡眠的进程数
  0 stopped 停止的进程数
  0 zombie 僵尸进程数
  Cpu(s):
  0.2% us 用户空间占用CPU百分比
  0.1% sy 内核空间占用CPU百分比
  0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
  99.2% id 空闲CPU百分比
  0.4% wa 等待输入输出的CPU时间百分比
  0.0% hi
  0.0% si
  0.4% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多




























二、vmstat命令

命令:vmstat 2 5(每两秒执行一次,执行5次)

linux查看磁盘io使用情况

vmstat参数解释:
  Procs
       r: 等待运行的进程数
            b: 处在非中断睡眠状态的进程数
  Memory
      swpd: 虚拟内存使用情况,单位:KB
      free: 空闲的内存,单位KB
      buff: 被用来做为缓存的内存数,单位:KB
  Swap
      si: 从磁盘交换到内存的交换页数量,单位:KB/秒
      so: 从内存交换到磁盘的交换页数量,单位:KB/秒
  IO
      bi: 发送到块设备的块数,单位:块/秒
      bo: 从块设备接收到的块数,单位:块/秒
  System
      in: 每秒的中断数,包括时钟中断
      cs: 每秒的环境(上下文)切换次数
  CPU(按 CPU 的总使用百分比来显示)
      us: CPU 使用时间
      sy: CPU 系统使用时间
      id: 闲置时间








































三、iostat 使用

安装命令: yum install sysstat 

使用iostat -d -k 2 查看IO情况:

-k:已kb为单位显示读写信息

-m:已mb为单位显示读写信息

linux查看磁盘io使用情况

device:磁盘名称
tps:每秒钟发送到的I/O请求数.
Blk_read/s:每秒读取的block数.
Blk_wrtn/s:每秒写入的block数.
Blk_read:读入的block总数.
Blk_wrtn:写入的block总数.










使用iostat -x 5 查看IO情况:

-x:更详细的io设备统计信息

linux查看磁盘io使用情况

选项 说明
rrqm/s 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s 每秒对该设备的写请求被合并次数
r/s 每秒完成的读次数
w/s 每秒完成的写次数
rkB/s 每秒读数据量(kB为单位)
wkB/s 每秒写数据量(kB为单位)
avgrq-sz 平均每次IO操作的数据量(扇区数为单位)
avgqu-sz 平均等待处理的IO请求队列长度
await 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm 平均每次IO请求的处理时间(毫秒为单位)
%util 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

四、iotop命令

安装命令:yum install iotop

查看哪个线程耗IO比较高、按 o 只显示有磁盘 IO 活动的进程。

linux查看磁盘io使用情况

各个参数说明:   -o, --only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。   -b, --batch非交互模式,一般用来记录日志。   -n NUM, --iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。   -d SEC, --delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。   -p PID, --pid=PID指定监测的进程/线程。   -u USER, --user=USER指定监测某个用户产生的I/O。   -P, --processes仅显示进程,默认iotop显示所有线程。   -a, --accumulated显示累积的I/O,而不是带宽。   -k, --kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。   -t, --time 加上时间戳,非交互非模式。   -q, --quiet 禁止头几行,非交互模式。有三种指定方式。   -q 只在第一次监测时显示列名   - 永远不显示列名。   -q 永远不显示I/O汇总。 交互按键:   和top命令类似,iotop也支持以下几个交互按键。   left和right方向键:改变排序。     r:反向排序。   o:切换至选项--only。   p:切换至--processes选项。   a:切换至--accumulated选项。   q:退出。   i:改变线程的优先级。 

五、pt-ioprofile命令

安装步骤:

1、安装依赖包:yum install -y perl perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-Digest-MD5 perl-ExtUtils-MakeMaker
2、下载:wget https://www.percona.com/downloads/percona-toolkit/3.0.13/binary/redhat/7/x86_64/percona-toolkit-3.0.13-1.el7.x86_64.rpm

3、安装rpm包:rpm -ivh percona-toolkit-3.0.13-1.el7.x86_64.rpm

使用方法:

pt-ioprofile --profile-pid=1236 --cell=sizes

pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。

linux查看磁盘io使用情况

对于定位问题更有用的是通过IO的吞吐量来进行定位。使用参数 –cell=sizes,该参数将结果已 B/s 的方式展示出来

从上图可以看出IO负载的主要来源是jetty。

并且压力主要集中在读取上。

六、sar命令

  • DEV  磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接
  • tps  每秒I/O的传输总数
  • rd_sec/s  每秒读取的扇区的总数
  • wr_sec/s  每秒写入的扇区的总数
  • avgrq-sz  平均每次次磁盘I/O操作的数据大小(扇区)
  • avgqu-sz  磁盘请求队列的平均长度
  • await  从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间
  • svctm  I/O的服务处理时间,即不包括请求队列中的时间
  • %util  I/O请求占用的CPU百分比,值越高,说明I/O越慢

除了查看磁盘外还能查看其他的资源信息:

  • 查看CPU使用情况  sar -u
  • 将统计结果保存到文件 sar -o  &  sar -f
  • 查看平均负载  sar -q
  • 查看内存使用情况  sar -r
  • 查看系统swap分区统计情况  sar -W
  • 查看IO和传递速率  sar -b
  •  统计网络信息 sar -n 
  •  网络接口信息 sar -n DEV
  •  网络设备通信失败信息 sar -n EDVE
  • 统计socket连接信息  sar -n SOCK
  •  TCP连接的统计  sar -n TCP

七、dstat命令

参考:CentOS下性能监测工具 dstat – 走看看

八、sysstat命令

九、pidstat命令

pidstat -d 1 (每1秒打印一次使用磁盘io的进程及io速度)

linux查看磁盘io使用情况

 ctrl+c后显示统计

linux查看磁盘io使用情况

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199603.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午12:38
下一篇 2026年3月20日 下午12:38


相关推荐

  • linux防火墙端口设置_centos怎么关闭防火墙端口

    linux防火墙端口设置_centos怎么关闭防火墙端口Ubuntu18:测试:默认拒绝全部端口提示:端口修改后立即生效sudoufwstatus#查看端口状态sudoufwdisable#关闭防火墙sudoufwenable#打开防火墙sudoufwallow3306#允许tcp/udp访问端口sudoufwdeny3306#禁止端口或服务访问sudoufwdeleteallow3306#删除规则(或deny3306)CentOS7:测试:默认接收全部端口提示:端口修改后要重启防

    2026年2月12日
    5
  • linux中mysql忘记密码[通俗易懂]

    linux中mysql忘记密码[通俗易懂]第一种解决方案解决方法:1、利用“servicemysqlstop”命令关闭mysql服务;2、修改mysql的配置文件“my.conf”;3、用“servicemysqldstart”命令重启数据库;4、用“usemysql”语句修改密码。本教程操作环境:linux7.3系统、mysql8.0.22版本、DellG3电脑。linux中mysql忘记密码怎么解决解决方法:1、检查mysql服务是否启动,如果启动,关闭mysql服务 .

    2022年6月25日
    32
  • pycharm激活码2021_最新在线免费激活

    (pycharm激活码2021)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS3…

    2022年3月26日
    63
  • 大学生全网各类资源网站汇总

    大学生全网各类资源网站汇总本文转自我的公众号(求学青年)为了方便你更好的找到想要的网站,我把之前所有分享的学习网站都整合起来啦!!一路走来,有八十多天吧,我几乎每天都分享了一个网站,说容易也容易,但是这也是我心中的一点坚持,

    2022年7月1日
    30
  • 软件测试(3) UFT12使用_GUITest

    软件测试(3) UFT12使用_GUITest环境:UFT12,Win10,VS2015&VS2017启动UFT12,为了启动方便修改快捷方式。设置插件,WPF相关的都设置起来。新建项目点击录制按钮(F6),设置启动程序。确定,开始录制。程序启动,显示登录界面。操作:切换IP,点击按钮,登录。点击工具栏按钮,停止录制。点击运行按钮(F5)。

    2022年5月27日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号