Linux 查看磁盘IO并找出占用IO读写很高的进程

 更新时间:2020年02月05日 09:09:58   作者:踏歌行666  
这篇文章主要介绍了Linux 查看磁盘IO并找出占用IO读写很高的进程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

背景-线上告警

线上一台服务器告警,磁盘利用率 disk.util > 90,并持续告警。

登录该服务器后通过iostat -x 1 10查看了相关磁盘使用信息。相关截图如下:

 # 如果没有 iostat 命令,那么使用 yum install sysstat 进行安装
# iostat -x 1 10

由上图可知,vdb磁盘的 %util【IO】几乎都在100%,原因是频繁的读取数据造成的。

其他字段说明

Device:设备名称
tps:每秒的IO读、写请求数量,多个逻辑请求可以组合成对设备的单个I/O请求。
Blk_read/s (kB_read/s, MB_read/s):从设备读取的数据量,以每秒若干块(千字节、兆字节)表示。块相当于扇区,因此块大小为512字节。
Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s):写入设备的数据量,以每秒若干块(千字节、兆字节)表示。块相当于扇区,因此块大小为512字节。
Blk_read (kB_read, MB_read):读取块的总数(千字节、兆字节)。
Blk_wrtn (kB_wrtn, MB_wrtn):写入块的总数(千字节,兆字节)。

rrqm/s:每秒合并到设备的读请求数。即delta(rmerge)/s
wrqm/s:每秒合并到设备的写入请求数。即delta(wmerge)/s
r/s:每秒完成的读I/O设备次数。即delta(rio)/s
w/s:每秒完成的写I/0设备次数。即delta(wio)/s
rsec/s (rkB/s, rMB/s):每秒读取设备的扇区数(千字节、兆字节)。每扇区大小为512字节
wsec/s (wkB/s, wMB/s):每秒写入设备的扇区数(千字节、兆字节)。每扇区大小为512字节

avgrq-sz:平均每次设备I/O操作的数据量(扇区为单位)。即delta(rsec+wsec)/delta(rio+wio)
avgqu-sz:平均每次发送给设备的I/O队列长度。
await:平均每次IO请求等待时间。(包括等待队列时间和处理时间,毫秒为单位)
r_await:平均每次IO读请求等待时间。(包括等待队列时间和处理时间,毫秒为单位)
w_await:平均每次IO写请求等待时间。(包括等待队列时间和处理时间,毫秒为单位)
svctm:平均每次设备I/O操作的处理时间(毫秒)。警告!不要再相信这个字段值,这个字段将在将来的sysstat版本中删除。
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。当该值接近100%时,设备饱和发生。

找到 IO 占用高的进程

通过 iotop 命令

如果没有该命令,请通过yum install iotop进行安装。

# iotop -oP

通过这个命令可以看见比较详细信息,如:进程号,磁盘读取量,磁盘写入量,IO百分比,涉及到的命令是什么「两个都是 grep 命令造成的IO读取量大」。

通过 pidstat 命令

# 命令的含义:展示I/O统计,每秒更新一次
# pidstat -d 1

可见其中 grep 命令占用了大量的读IO,之后可根据 PID 查看相关进程信息。

说明:本图与上图的PID不同,原因是上图涉及的进程执行完了,本图是之后执行产生的进程【都执行的同一个脚本】。

总结

以上所述是小编给大家介绍的Linux 查看磁盘IO并找出占用IO读写很高的进程,希望对大家有所帮助!

相关文章

  • 在Centos部署nodejs的步骤

    在Centos部署nodejs的步骤

    本篇文章主要介绍了在Centos部署nodejs的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • xampp apache启动失效问题的解决方法

    xampp apache启动失效问题的解决方法

    在windows上使用xampp搭建php的开发环境,后来又安装了oracle 10g。
    2009-10-10
  • Linux中移除(删除)符号链接的命令

    Linux中移除(删除)符号链接的命令

    这篇文章主要介绍了在Linux中怎样移除(删除)符号链接,需要的朋友可以参考下
    2019-09-09
  • Linux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。所以下面这篇文章主要给大家介绍了关于Linux中环境变量配置的相关资料,需要的朋友可以参考下。
    2017-07-07
  • CentOS+Nginx+PHP+MySQL详细配置(图解)

    CentOS+Nginx+PHP+MySQL详细配置(图解)

    CentOS+Nginx+PHP+MySQL详细配置(带有图解),需要的朋友可以参考下。
    2011-03-03
  • 关于AIX挂载NFS写入效率低效的解决方法

    关于AIX挂载NFS写入效率低效的解决方法

    这篇文章主要给大家介绍了关于AIX挂载NFS写入效率低效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Linux下sersync数据实时同步

    Linux下sersync数据实时同步

    这篇文章主要为大家详细介绍了Linux下sersync数据实时同步的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Linux防火墙的配置全过程

    Linux防火墙的配置全过程

    这篇文章主要介绍了Linux防火墙的配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • CentOS+Nginx+PHP+MySQL标准生产环境配置方法

    CentOS+Nginx+PHP+MySQL标准生产环境配置方法

    这个可比网上流传的什么一键安装包要好得多,强烈推荐此法安装,适合所有菜鸟和高手。我服务器上全用的源代码编译安装,也好不到哪去,还很费劲。我这个装完已经包含 php 的一些常用扩展, PDO,eaccelerator,memcache,tidy等等。
    2010-02-02
  • Ubuntu18.04(linux)安装MySQL的方法步骤

    Ubuntu18.04(linux)安装MySQL的方法步骤

    本篇文章主要介绍了Ubuntu18.04(linux)安装MySQL的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论