1. 程式人生 > >記一次伺服器CPU異常處理流程

記一次伺服器CPU異常處理流程

上線新版本後cpu飆升,配置什麼都沒變!
1,著手調查馬上檢視慢查詢,沒有慢查詢
2,檢視慢php程序tail -f log.slow,定位到方法函式圖片轉指令方法耗時大,和cpu損耗掛鉤,基本猜測這個函式方法,但沒有優化空間
3,不死心,查一下程序耗損掛起點:ll /proc/PID號/fd/
結果:
lrwx------ 1 www www 64 Dec 18 12:21 0 -> socket:[309913580]
lrwx------ 1 www www 64 Dec 18 12:21 1 -> /dev/null
lrwx------ 1 www www 64 Dec 18 12:21 2 -> /dev/null
lrwx------ 1 www www 64 Dec 18 12:21 3 -> /tmp/.ZendSem.MNQcO5 (deleted)
lr-x------ 1 www www 64 Dec 18 12:21 7 -> /etc/pki/nssdb/cert9.db
lr-x------ 1 www www 64 Dec 18 12:21 8 -> /etc/pki/nssdb/key4.db
key4.db,cert9.db定位郵件傳送服務有問題,先解決,郵件服務解決了發現問題沒有大改善!
/tmp/.ZendSem.MNQcO5 (deleted)程序零時檔案掛起沒有真正刪除,意味著有程序還在使用該檔案,但檢視程序已被kill了,只能猜測圖片轉指令方法一直在迴圈呼叫!
4,回頭看程式碼,不該請求裝換的資料都請求了方法,業務邏輯沒加判斷,裝換指令for迴圈太大耗損cpu,改程式碼解決