首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

转:查看占io的过程

2012-12-23 
转:查看占io的进程查找是那个进程的io高,一直cpu等待。切换到root权限用户。执行脚本a.sh#!/bin/sh/etc/init

转:查看占io的进程

查找是那个进程的io高,一直cpu等待。切换到root权限用户。执行脚本a.sh

#!/bin/sh

/etc/init.d/syslog stop

echo 1 > /proc/sys/vm/block_dump

sleep 60

dmesg | awk '/(READ|WRITE|dirtied)/ {process[$2]++} END {for (x in process) \

print process[x],x}' |sort -nr |awk '{print $2 " " $1}' | \

head -n 10

echo 0 > /proc/sys/vm/block_dump

/etc/init.d/syslog start

##########end###########

显示结果如下:

Shutting down kernel logger: [? OK? ]
Shutting down system logger: [? OK? ]
kjournald(1039): 372
java(16517): 200? // 进程名(线程号):io量
java(13590): 157
java(4126): 150
java(16486): 148
java(13620): 113
java(13602): 95
java(4214): 90
java(3611): 90
java(16497): 81
Starting system logger: [? OK? ]
Starting kernel logger: [? OK? ]

?

显示的编号是线程号(thread) ,不是进程号(pid)

需要通thread id 找到 pid ,方法如下:需要加入-L参数

ps -Lef|grep? tid

?

这样就可以查看出是那个应用在大量的操作磁盘了

?

简化操作步骤:
echo 1 > /proc/sys/vm/block_dump;
sleep 60

dmesg | awk '/(READ|WRITE|dirtied)/ {process[$2]++} END {for (x in process) \

print process[x],x}' |sort -nr |awk '{print $2 " " $1}' | \

head -n 10;

echo 0 > /proc/sys/vm/block_dump;


找出进程
ps -Lef|grep? tid

热点排行