Linux上查看造成IO高负载的进程

简介: 方法1:使用iotop工具 这是一个python脚本工具,使用方法如:iotop -o 方法2:使用工具dmesg 使用dmesg之前,需要先开启内核的IO监控: echo 1 >/proc/sys/vm/block_dump或sysctl vm.
方法1:使用iotop工具
这是一个python脚本工具,使用方法如:iotop -o


方法2:使用工具dmesg
使用dmesg之前,需要先开启内核的IO监控:
echo 1 >/proc/sys/vm/block_dump或sysctl vm.block_dump=1


然后可以使用如下命令查看IO最重的前10个进程:
dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10


方法3:使用命令“iostat -x 1“确定哪个设备IO负载高:
# iostat -x 1 3
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.06    0.00    0.99    1.09    0.00   97.85


Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          0.49  17.29  1.74  6.75   23.47  200.18    11.73   100.09    26.33     0.10   12.25   5.73   4.87


找“await”值最大的设备(Device),如上的结果即为sda。


然后使用mount找到sda挂载点,再使用fuser命令查看哪些进程在访问,如:
# fuser -vm /data

相关文章
|
3天前
|
Unix Linux
linux进程状态基本语法
linux进程状态基本语法
|
4天前
|
Linux 编译器 C语言
【Linux】基础IO----理解缓冲区
【Linux】基础IO----理解缓冲区
16 0
【Linux】基础IO----理解缓冲区
|
3天前
|
缓存 Linux 编译器
【Linux】多线程——线程概念|进程VS线程|线程控制(下)
【Linux】多线程——线程概念|进程VS线程|线程控制(下)
11 0
|
3天前
|
存储 Linux 调度
【Linux】多线程——线程概念|进程VS线程|线程控制(上)
【Linux】多线程——线程概念|进程VS线程|线程控制(上)
14 0
|
3天前
|
存储 NoSQL Unix
【Linux】进程信号(下)
【Linux】进程信号(下)
16 0
|
3天前
|
安全 Linux Shell
【Linux】进程信号(上)
【Linux】进程信号(上)
13 0
|
3天前
|
消息中间件 Linux
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(下)
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(下)
14 0
|
3天前
|
消息中间件 存储 Linux
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(上)
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(上)
11 0
|
3天前
|
安全 Linux 数据格式
【Linux】进程通信----管道通信(下)
【Linux】进程通信----管道通信(下)
14 0
|
3天前
|
Unix Linux
【Linux】进程通信----管道通信(上)
【Linux】进程通信----管道通信(上)
20 0