Linux系统小技巧(5):如何列出和排序正在读写的进程?
哪些进程这在对写?试试iotop。但是有时候并不方便安装部署iotop,而且iotop的输出也容易进一步分析处理。
那么,有没有其他方式方便做到这一点呢?有。在说出答案前,我们先看看一个实际/proc//io文件的内容
rchar: 951610978
wchar: 1180044763
syscr: 133011
syscw: 120643
read_bytes: 77246464
write_bytes: 735604736
cancelled_write_bytes: 98304
根据内核文档,*rchar*和*wchar*即是进程已经提交但还没有完成的的读写操作要处理的内容。因此逐一遍历进程,即可计数正在读写的进程并且予以适当排序。
比如,列出正在发起读操作的前20个进程,我们可以这样办理
for pid in $(cd /proc;ls | perl -nE 'chomp;next if (!/^\d+$/);say');do if [ -e /proc/${pid} ];then num=$(cat /proc/${pid}/io | grep -E '^rchar:' | cut -d ' ' -f 2);echo "${num} ${pid}";fi;done | sort -n -r | head -20
当然,上面的命令稍加改动就可以用到正在写的进程上
for pid in $(cd /proc;ls | perl -nE 'chomp;next if (!/^\d+$/);say');do if [ -e /proc/${pid} ];then num=$(cat /proc/${pid}/io | grep -E '^wchar:' | cut -d ' ' -f 2);echo "${num} ${pid}";fi;done | sort -n -r | head -20
最后更新:2017-07-26 18:04:12
上一篇:
Linux问题情报分享(1):内核Stack Clash补丁导致Java程序启动失败
下一篇:
二手域名价值三招认定法
大屏时代的生态变迁,看平板手机的拇指热键与界面布局
Android3.0版本以上出现android.os.NetworkOnMainThreadException异常与处理方式
如何使用NetCat或BASH创建反向Shell来执行远程Root命令
maven编译时出现读取XXX时出错invalid LOC header (bad signature)
XML总结
6月22日云栖精选夜读:业界首个非侵入式热修复方案Sophix重磅推出,颠覆移动端传统更新流程!
《8051系列单片机C程序设计完全手册》的电子书PDF完整合集版
8月7日云栖精选夜读:五分钟读懂SIGIR 2017前沿技术研究成果
空间复合索引加速空间搜索
Myeclipse改变J2EE的Libraries