定位系統異常負載故障思路:
top看程序的id號
舉例php-cgi
經過上圖,我們發現,有兩個php-cgi程序的cpu資源佔用率過高,pid分別是10059,11570,這一般都是程式優化不夠造成,如何定位問題的php程式位置?
2. 找出程序所使用的檔案
/proc/檔案系統儲存在記憶體中,主要儲存系統的狀態,關鍵配置等等,而/proc/目錄下有很多數字目錄,就是程序的相關資訊,如下圖,我們看看程序10059正在使用哪些檔案?
顯然,使用了/home/tmp/sess_*檔案,這明顯是php的session檔案, 我們檢視這個session檔案的內容為:view_time|123333312412
到這裡,我們已經可以懷疑是由於php程式寫入乙個叫view_time的session項而引起, 那麼剩餘的事件就是檢查包含view_time的所有php檔案,然後修改之(比如改用cookie),這實話, 這個view_time並非敏感資料,僅僅記錄使用者最後訪問時間,實在沒必要使用代價巨大的session, 而應該使用cookie。
3. 找出有問題的程式,修改之
使用vi編輯以下shell程式(假設**程式位於/www目錄下)
#!/bin/bash
find /www/ -name "*.php" > list.txt
f=`cat ./list.txt`
for n in $f
do
r=`egrep 'view_time' $n`
if [ ! "$r" = "" ] ; then
echo $n
fi
done
執行這個shell程式,將輸出包含有view_time的檔案, 對記事狗微博系統,產生的問題位於modules/topic.mod.class檔案中
Linux問題故障定位
針對應用程式,通常關注的是核心cpu排程器功能和效能。執行緒的狀態分析主要是分析執行緒的時間用在什麼地方,而執行緒狀態的分類一般分為 a.on cpu 執行中,執行中的時間通常又分為使用者態時間user和系統態時間sys。b.off cpu 等待下一輪上cpu,或者等待i o 鎖 換頁等等,其狀態可...
Linux負載查詢定位工具
1 uptime命令,負載查詢命令 02 34 03 當前時間 up 2 days,20 14 系統執行時間 1 user 正在登入使用者數 而最後三個數字呢,依次則是過去 1 分鐘 5 分鐘 15 分.2 模擬工具stress 模擬cpu負載 stress cpu 1 timeout 600 模擬...
Linux系統故障修復
linux系統中有乙個叫做單使用者模式的東西,類似windows系統中的安全模式。進入單使用者模式後,我們就可以在最小環境中進行系統的維護與修復,玩過linux系統的都知道linux中有乙個執行級別的概念,單使用者模式就是執行級別1。在單使用者模式中,系統會引導你進入根shell,並且禁用網路,大多...