512
技術社區[雲棲]
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