linux程序在不断的读磁盘,Linux系统如何查找磁盘I/O读写过高的进程?

首先,模拟磁盘I/O读写高的情况

# 拷贝大文件进行测试

[[email protected] ~]# \cp -rp /mnt/cdrom/ /tmp/

1、通过"iostat -x 1 10"命令查看相关磁盘使用信息

表示每隔1秒刷新一次,刷新10次

如果没有iostat命令,使用yum -y install sysstat安装

b56b5b7e6f7d43de4c95594246b2db71.png

由图可知scd0也就是被拷贝的磁盘的%util几乎超过了100%,原因就是频繁的读取数据造成的;

字段说明

Device# 设备名称

tps# 每秒的IO读、写请求数量,多个逻辑请求可以组合对设备的单个I/O请求;

Blk_read/s#从设备读取的数据量,以每秒若干块(千字节、兆字节)表示;块相当于扇区,块大小为512字节

Blk_wrtn/s#写入设备的数据量,以每秒若干块表示;

Blk_read#读取块的总数(千字节、兆字节)

Blk_wrtn#写入块的总数(千字节、兆字节)

rrqm/s#每秒合并到设备的读请求数;

wrqm/s#每秒合并到设备的写入请求数;

r/s#每秒完成的读I/O设备次数;

w/s#每秒完成的写I/O设备次数;

rsec/s(rkB/s,rMB/s)#每秒读取设备的扇区数,每扇区大小为512字节;

wsec/s(wkB/s,wMB/s)#每秒写入设备的扇区数,每扇区大小为512字节;

avgrq-sz#平均每次设备I/O操作的数据量(扇区为单位);

abgqu-sz#平均每次发送给设备的I/O队列长度

await#平均每次I/O请求等待时间(包括等待队列时间和处理时间,毫秒为单位)

r_await#平均每次I/O读请求等待时间;

w_await#平均每次I/O写请求等待时间;

svctm#平均每次设备I/O操作的处理时间(毫秒);

%util#一秒中有百分之多少的时间用于I/O操作,当该值接近100%,设备饱和发生;

2、通过"iotop"命令

如果没有该命令,使用yum -y install iotop命令进行安装

f8fe0b2c6b3d6249c5d4811c0abacd1e.png

通过这个命令可以看见比较详细的信息,如:进程号、磁盘读取量、磁盘写入量、I/O百分比,以及命令等;

3、通过"pidstat"命令

命令的含义:展示I/O统计,每秒更新一次;

pidstat -d 1

ee1c059a7b2811f54368d723652efaa3.png

原文:https://www.cnblogs.com/ccku/p/13938489.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值