在服務器上,我們一般使用top命令工具來監視服務器進程和Linux整體性能。
top
將會看到如下結果界面:
會列出了進程PID,USER(所屬用戶),PR,%CPU,%MEM,COMMAND(命令或者服務)等參數的列表,這個顯示列表是動態跟蹤服務器的。
問題來了,在上面的監控中,主要查看$CPU,%MEM,COMMAND這幾個參數值,上面可以看到排在前面的兩個進程都肚子佔用了一枚CPU的%100。另外也可以根據這個列表看出WEB服務器有多少個CPU,數數php5-cgi的行數就是了。
看到兩個php-cgi進程貌似是因爲程序存在問題死循環什麼的了把當時處理這個腳本的CPU給佔滿了,在這裏,雖然我們大概知道是程序某個地方存在嚴重的問題,但是我們不能具體定位出來到底是系統的哪段文件出問題了。
於是,/proc來幫我們了,我們找到哪個進程在耗CPU,
對,PID爲24207和24219這兩傢伙,咱們來用/proc虛擬文件系統來定位吧。
ls -l /proc/24219 # 後面的數字爲上面的PID
注意上圖中藍色的路徑,對,這個路徑就是此段程序執行的代碼路徑,定位到了吧,然後你就可以在這個路徑下去找那原因了
歡迎大家光臨我的博客,http://larro.cn/