自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用Shell解決問題進(jìn)程?

運(yùn)維 系統(tǒng)運(yùn)維
如何使用Shell解決問題進(jìn)程?實際上解決問題的思路非常簡單:通過CRON每分鐘運(yùn)行一個Shell,查詢系統(tǒng)負(fù)載,一旦發(fā)現(xiàn)異常,就通過「ps」命令保存進(jìn)程快照,也可以進(jìn)一步保存負(fù)載,內(nèi)存等相關(guān)的數(shù)據(jù)。

  最近公司服務(wù)器不太穩(wěn)定,總是在凌晨某個時段突發(fā)高負(fù)載情況,因為客觀環(huán)境比較復(fù)雜,所以很難猜測出到底是哪個進(jìn)程出現(xiàn)了問題,加之故障發(fā)生時,通常我在睡覺,無形中增加了解決問題的難度,于是我便寫了一個Shell來替我搞定這個問題。

  實際上解決問題的思路非常簡單:通過CRON每分鐘運(yùn)行一個Shell,查詢系統(tǒng)負(fù)載,一旦發(fā)現(xiàn)異常,就通過「ps」命令保存進(jìn)程快照,也可以進(jìn)一步保存負(fù)載,內(nèi)存等相關(guān)的數(shù)據(jù),但通常沒有必要,因為通過「sar」命令很容易拿到。相關(guān)Shell代碼如下:

#/bin/bash
LOAD=$(awk '{print $1}' /proc/loadavg)
CPUNUM=$(grep processor /proc/cpuinfo | wc -l)

if [ $(echo "$LOAD > $CPUNUM" | bc) = 1 ]; then
    RESULT=$(ps -eo pcpu,pmem,user,args | awk '$1 > 0' | sort -nr)
    if [ -n "$RESULT" ]; then
        echo "$RESULT" > /var/log/snapshot.$(date +"%Y%m%d%H%M")
    fi
fi

  實際使用時需要注意的地方:首先,要避免日志文件塞滿硬盤;其次,因為是通過CRON來執(zhí)行的,所以可能會漏判,如果強(qiáng)調(diào)準(zhǔn)確性請自行改寫為守護(hù)進(jìn)程方式。

  這個Shell實在是太簡單了,簡單到我本不想專門寫一篇文章,不過它卻非常實用,幫我解決了大問題,所以還是記錄下來,希望它也能助大家一臂之力。

責(zé)任編輯:黃丹 來源: udpwork.com
相關(guān)推薦

2014-12-26 10:23:21

谷歌

2013-03-20 09:54:07

2011-06-29 18:02:58

Qt 中文 翻譯

2010-05-06 17:07:34

Unix命令

2022-09-02 16:07:02

團(tuán)隊問題

2020-07-03 14:44:44

2009-07-28 12:35:37

querystring

2009-08-13 17:25:18

C# Convert類

2021-10-27 10:53:38

智慧城市智能移動技術(shù)智能

2013-09-25 10:18:26

Java啟發(fā)式搜索

2010-05-06 17:13:18

Unix命令

2011-06-30 14:16:25

QT 中文 亂碼

2009-12-28 14:15:06

ADO連接

2012-10-31 10:47:05

VMware

2023-11-03 13:38:49

代碼架構(gòu)

2016-06-15 10:08:29

云計算

2010-01-06 10:08:57

2015-02-02 10:13:43

程序員

2015-10-27 15:58:20

PHP程序員問題能力

2020-12-07 09:07:41

程序員技能開發(fā)者
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號