linux查单个进程,Linux下查询单个进程I/O信息

本文汇总了网上一些linux系统下获取I/O信息的方法

1,iostat命令,这个命令可以在2.6.X中安装使用(C语言实现的),但是不好的地方时它并没有提供每个进程的I/O信息,而是按设备块来统计的I/O。

root@localhost:/root> iostat -dk

Linux 2.6.34.8-WR4.1.0.0_standard (localhost)   05/06/11

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

sda               0.02         0.02         0.14      29552     185344

sda1              0.00         0.00         0.00        171          0

sda2              0.00         0.00         0.00        164          0

sda3              0.00         0.00         0.00        164          0

sda4              0.00         0.00         0.00        129          0

sda5              0.00         0.00         0.00        100          0

sda6              0.02         0.02         0.14      28241     185132

sda7              0.00         0.00         0.00        370        212

2,iotop命令,这个命令可以提供每个进程的I/O信息,但是不好的地方是它使用 Python 语言编写而成,要求 Python 2.5(及以上版本)和 Linux kernel 2.6.20(及以上版本)。

3,对于2.6.20以下内核版本中可以获取单个进程的I/O信息,可以使用如下方法

监控一个进程的I/O信息的原理如下:In Linux 2.6.1, a widely unknown and poorly implemented feature was added that allows you to monitor filesystem activity on a global scale: /proc/sys/vm/block_dump在这个文件中设置为1echo 1 > /proc/sys/vm/block_dump现在就会dump活动信息到syslog中,然后使用dmesg将日志输出到临时文件。dmesg -c > /tmp/diskio.log文件中会有如下类似信息kjournald(902): WRITE block 74620912 on sda4kjournald(902): WRITE block 133320 on sda4kjournald(902): WRITE block 133328 on sda4kjournald(902): WRITE block 133336 on sda4pdflush(30503): WRITE block 79167488 on sda4pdflush(30503): WRITE block 79167496 on sda4pdflush(30503): WRITE block 79167504 on sda4到这里大家就应该清楚是怎么得到I/O信息了现在只要过滤WRITE和READ的行,并记录下进程名和进程id就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值