centos中如何找出系统中 load 高时处于运行队列的进程
生活随笔
收集整理的這篇文章主要介紹了
centos中如何找出系统中 load 高时处于运行队列的进程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如何用腳本統(tǒng)計(jì)出來處于運(yùn)行隊(duì)列的進(jìn)程呢?
#1.查看進(jìn)程的狀態(tài)
如何把這個(gè)腳本在centos創(chuàng)建并運(yùn)行呢?
vi cpustatus.sh然后把腳本內(nèi)容復(fù)制上去,每隔 1s 統(tǒng)計(jì)一次:
#!/bin/bash LANG=C PATH=/sbin:/usr/sbin:/bin:/usr/bin interval=1 length=86400 for i in $(seq 1 $(expr ${length} / ${interval}));do date LANG=C ps -eTo stat,pid,tid,ppid,comm --no-header | sed -e 's/^ \*//' | perl -nE 'chomp;say if (m!^\S*[RD]+\S*!)' date cat /proc/loadavg echo -e "\n" sleep ${interval} done最后,設(shè)置文件作為可執(zhí)行程序。
chmod +x cpustatus.sh以后只要通過./cpustatus.sh就可以執(zhí)行該腳本了。執(zhí)行后,如果想退出,可以通過Ctrl+z命令就可以進(jìn)行退出了。
從統(tǒng)計(jì)出來的結(jié)果可以看到: 在 load 比較高的時(shí)候,有大量的 nginx 處于 R 或者 D 狀態(tài),他們才是造成 load 上升的元兇,和我們底層的負(fù)載確實(shí)是沒有關(guān)系的。#2.CPU 使用率比較高的線程
同上,創(chuàng)建一個(gè)cpu.sh腳本,然后通過下面這段腳本
#!/bin/bash LANG=C PATH=/sbin:/usr/sbin:/bin:/usr/bin interval=1 length=86400 for i in $(seq 1 $(expr ${length} / ${interval}));do date LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | grep -v CPU | sort -n -r | head -20 date LANG=C cat /proc/loadavg { LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | sed -e 's/^ *//' | tr -s ' ' | grep -v CPU | sort -n -r | cut -d ' ' -f 1 | xargs -I{} echo -n "{} + " && echo '0'; } | bc -l sleep ${interval} done fuser -k $0 微信掃一掃:關(guān)注我個(gè)人訂閱號(hào)“猿小飛”,更多精彩文章在這里及時(shí)發(fā)布:?
總結(jié)
以上是生活随笔為你收集整理的centos中如何找出系统中 load 高时处于运行队列的进程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下如何查看高CPU占用率线程
- 下一篇: java监听窗口饮品,Java 完成部分