博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux系统小技巧(5):如何列出和排序正在读写的进程?
阅读量:6494 次
发布时间:2019-06-24

本文共 1881 字,大约阅读时间需要 6 分钟。

哪些进程这在对写?试试。但是有时候并不方便安装部署,而且的输出也容易进一步分析处理。

那么,有没有其他方式方便做到这一点呢?有。在说出答案前,我们先看看一个实际文件的内容

rchar: 951610978wchar: 1180044763syscr: 133011syscw: 120643read_bytes: 77246464write_bytes: 735604736cancelled_write_bytes: 98304

根据内核文档,rcharwchar即是进程已经提交但还没有完成的的读写操作要处理的内容。因此逐一遍历进程,即可计数正在读写的进程并且予以适当排序。

比如,列出正在发起读操作的前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

以上两个命令的执行示例如下

root@demo:~# 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 -2028908475231 15022495635 13093647776277 9061537484053 18061091171589 1388955070588 31283445533142 1458325857806 920148582179 89375633008 972975169817 206874541144 203874355216 206773356682 208570308680 207350819715 187348753553 208048556521 143647121818 170941993240 29162root@demo:~# 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 1180115284 31283502324828 1488319291 90694696438 130961642095 145841535896 89339210225 2916215680109 13599482873 20685626696 17565545914 17094047538 16772944955 4782602756 196482065398 223882060970 223891816383 196441687956 13071548644 196471545858 19645root@demo:~#

转载地址:http://ciyyo.baihongyu.com/

你可能感兴趣的文章
fio硬盘压力测试
查看>>
信号处理——卷积(convolution)的实现
查看>>
多线程同步(循环50 基础加深版)
查看>>
Black and White
查看>>
静态变量和实例变量的区别
查看>>
晨跑【最小费用最大流】
查看>>
景点中心 C组模拟赛
查看>>
iOS国际化(多语言设置)
查看>>
bzoj 2733 平衡树启发式合并
查看>>
sublime简书安装配置
查看>>
爱上MVC~Web.Config的Debug和Release版本介绍
查看>>
条款03 尽可能使用const
查看>>
【转】那些年我们一起清除过的浮动
查看>>
python__高级 : 动态添加 对象属性, 类属性, 对象实例方法, 类静态方法, 类方法...
查看>>
【每天一道算法题】时间复杂度为O(n)的排序
查看>>
NLog的介绍使用
查看>>
Haproxy+Rabbitmq中的问题
查看>>
字符串变量小议
查看>>
232. Implement Queue using Stacks
查看>>
Poj(1469),二分图最大匹配
查看>>