linux查看哪个进程占用磁盘IO

1.使用iotop命令。
使用该命令是有条件的。
Linux内核必须高于2.6.20。
2:block_dump系统。
/etc/init.d/syslogstopecho1>/proc/sys/vm/block_dumpdmesg|egrep"READ|WRITE|directed"|egrep-o'([a-zA-Z]*)'|sort|uniq-c|sort-rn|head的执行效果如下图所示:注意:操作完成后,请关闭block_dump并startsyslogecho0>/proc/sys/vm/block_dump#关闭block_dump/etc/init.d/syslogstart#启动syslog

Linux查看磁盘io开销的几种方法

如何快速判断高并发是否是由于磁盘IO开销高造成的?有三种方式:

第一种:使用top命令中的cpu信息来观察

Top可以看到的cpu信息是:

代码如下:

任务:29total,1running,28sleeping,0已停止,0zombie

Cpu(s):0.3%us,1.0%sy,0.0%ni,98.7%id,0.0%wa,0.0%hi,0.0%si

特定解释如下:

Tasks:29total进程总数

1running正在运行的进程数

28睡眠进程数

0stopped停止进程数

0zombie僵尸进程数

Cpu(s):

0.3%us用户空间占用CPU百分比

1.0%sy内核空间占用CPU百分比

0.0%ni用户进程空间中改变优先级的进程占用CPU百分比

98.7%id空闲CPU百分比

0.0%wa等待输入输出的CPU时间百分比

0.0%hi

0.0%si

0.0%wa可以大致反映当前磁盘IO请求是否频繁。
如果wa的数量比较多,说明等待输入输出的IO较多。

第二:使用vmstat

vmstat命令报告有关线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。
vmstat命令生成的报告可用于平衡系统负载活动。
这些统计数据在系统范围内(跨所有处理器)以百分比形式平均或求和。

输入命令:

代码如下:

vmstat25

如果等待进程数和非进程数发现可中断睡眠状态非常多,并且发送到块设备的块数量和从块设备接收的块数量都非常大,这意味着磁盘IO非常多。

vmstat参数解释:

Procs

r:等待运行的进程数b:不可中断睡眠状态的进程数w:换出可以运行的进程数。
这个数字是Linux计算出来的,但Linux不会耗尽交换空间

内存

swpd:虚拟内存使用量,单位:KB

free:空闲内存,单位:KB

buff:用作缓存的内存量,单位:KB

Swap

si:从磁盘交换到的交换页数内存,单位:KB/秒

so:从内存交换到磁盘的交换页数量,单位:KB/秒

IO

bi:发送到磁盘的块数量块设备,单位:块/秒

bo:从块设备接收到的块数,单位:块/秒

系统

in:每秒中断数,包括时钟中断

cs:每秒环境(Context)切换次数

CPU

以CPU总使用率百分比显示

us:CPU使用时间

sy:CPU系统使用时间

id:空闲时间

精确测量

更多vmstat使用情况信息

第三种方法:使用iostat

安装:

Iostat是sysstat工具集中的一个工具,需要安装。

Centos的安装方法为:

代码如下:

yuminstallsysstat

Ubuntu的安装方法为:

代码如下:

aptitudeinstallsysstat

使用:

iostat-dx显示磁盘扩展信息

root@fileapp:~#iostat-dx

r/s和w/s分别是每秒的读操作数和写操作数,rKB/s和wKB/s列显示每秒读取和写入的数据量(以千字节为单位)

如果两对数据值都很高,则表示磁盘IO操作非常频繁。

一文了解使用linux查看磁盘io使用情况

Linux中查看磁盘IO使用情况有五个方法:top、vmstat、iostat、iotop、pt-ioprofile。

1.top命令

使用示例:top-11:41:22up51min,2users,loadaverage:0.01,0.04,0.01

分析:查看Wa(等待输入输出的CPU时间百分比),当wa值超过30%,说明IO压力高。

详细说明:

任务:CPU进程总数:CPU利用率,包括hum、sy、ni、id、wa、hi、si、st等。

WA值越高,磁盘IO请求越高。

2.vmstat命令

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

详细参数:

procs:r(等待运行的进程数),b(非进程数)处于中断睡眠状态的进程)内存:swpd(虚拟伪内存使用量)、free(空闲内存)、buff(缓存内存数量)swap:c(从磁盘交换到内存)交换页数),so(从内存交换到磁盘的交换页数)IO:bi(发送到块设备的块数),bo(从块设备接收的块数)system:in(每每秒中断次数)、CS(每秒环境切换次数)CPU:US(CPU使用时间)、SY(系统使用时间)、ID(空闲时间)3、iostat使用

安装命令:yuminstallsysstat

使用示例:iostat-d-k2(以KB为单位显示读写信息)

四.iotop命令

安装命令:yuminstalliotop

查看IO消耗高的线程,按o键只显示磁盘IO活动的进程。

5.pt-ioprofile命令

安装步骤:安装依赖包,下载rpm包并安装使用:pt-ioprofile--profile-pid=1236--cell=size(通过IO吞吐量检测)

pt-ioprofile通过附加压力进程的IO进行分析,对于检测问题更有帮助。
使用--cell=size参数以B/S模式显示结果,并指定主源类型和IO负载。