伺服器主機的CPU用量會變高有很多原因,有時會突然變高不一定代表出問題,很可能是主機在進行高負載的工作(例如加解密、壓縮打包等等)。
但若是主機的CPU用量持續偏高,這代表著主機一定有需要去解決的問題,否則一旦放著不管,很快就會出現無可挽回的局面,例如資料庫資料損毀、所有服務停擺、或是被入侵而無法登入…
這次分享的案例是我一位十年的老客戶,他們公司的郵件伺服器(實體主機)一直是由我負責管理維運,但有一天早上突然發生主機CPU用量開始持續颷高的狀況!
透過INSTAWATCHER發現是imap程序佔住CPU資源
連入伺服器詳細查看佔用imap的帳號
透過郵件流量報表可以確認不是郵件帳號被入侵(否則會出現大量垃圾信件)
經過交叉判斷,並打電話與客戶詢問後,發現是客戶公司有台電腦無法正常關機,而該電腦便是在Log中佔住CPU用量(imap)的帳號擁有人,在其將有問題的電腦強迫關機後,伺服器也恢復正常了!
所以監看主機的運作狀態很重要,更重要的是要能夠即時處理問題,以避免問題擴大,以上述的例子來說,若是沒注意到主機CPU用量變那麼高,除了會造成CPU溫度越來越高容易當機之外,其它同仁都無法正常收發信件,包括在該主機上的其它服務也都會受到影響!
這就是我代管維運的日常工作之一。
若是使用SNMP協定來監看伺服器主機狀態的軟體(例如Nagios、Cacti等)也是一樣只能看到CPU用量變高,細節一樣要靠自己去查各種Log!
因為我是用INSTAWATCHER監看,INSTAWATCHER可以幫我記錄高CPU用量的程序,所以我才能很快找出問題的徵結點,然後去進行處理,真的很好用!