在騰訊雲上申請了一個centos服務器,最基礎的配置,1 核 1 GB 1 Mbps,50G硬盤,主要用來測試程序,練手用。在上面配置了一個mysql數據庫,一直使用都沒什麼問題。mysql
1 問題描述sql
過了個週末,週一上班,忽然發現MySQL不能使用了,鏈接不上。使用SSH登陸服務器查看,發現SSH也不能登陸服務器了。到騰訊雲控制檯頁面,查看服務器實例的狀態,點擊實例名,能夠查看監控頁面,裏面會顯示服務器實例的CPU、內網、外網、內存、硬盤等使用狀況。數據庫
當時CPU使用率到了90%以上,最高99%,硬盤IO訪問頻繁,特別是讀數據量很是大。centos
2 解決過程服務器
2.1 重啓服務器測試
想到重啓服務器,看能不能解決問題,服務器重啓以後,使用SSH能夠登陸進去,而後利用top命令查看進程、cpu使用等狀況,結果沒有發現異常,不過,很快就卡死了,SSH不能操做了。Mysql數據庫也是同樣,可啓動服務器的時候,能夠訪問,很快就不能訪問了。再次到騰訊雲操做臺查看服務器實例的監控頁面,CPU使用率依然在90%以上,說明重啓以後,問題沒有解決。優化
2.2 百度查看CPU利用率高spa
利用度娘,查看騰訊雲服務器CPU利用率高,給出一個頁面https://cloud.tencent.com/developer/information/%E6%9C%8D%E5%8A%A1%E5%99%A8cpu%E5%88%A9%E7%94%A8%E7%8E%87%E9%AB%98,點擊進入以後,有一個「CPU 使用率太高(Linux 系統)」連接,點擊進入https://cloud.tencent.com/document/product/213/14634,裏面對CPU利用率太高的分析過程和解決辦法進行了描述。命令行
騰訊將服務器CPU利用率太高歸結爲三個狀況,一種狀況是有異常進程,多是木馬或者病毒,須要使用top命令,查看哪一個進程佔用了CPU,而後使用kill命令結束異常進程。第二種狀況是業務量大,也就是說服務器承擔的業務過多,訪問量大,服務器負載大,承受不住,須要優化代碼或者擴容。第三種狀況是騰訊的組件進程,可能引發CPU利用率高,須要發起工單,向騰訊工做人員求助。orm
本身分析了一下,應該是第一種狀況,可能有異常的進程,佔用了大量的CPU資源,仔細查看文檔說明,其中有一句話,「CPU 使用率太高,容易引發服務器登陸不上,此時能夠嘗試使用 VNC 登陸的方式。使用 VNC 登陸實例的方法詳見 登陸Linux 實例 相關小節。」
2.3 VNC登陸服務器
回到服務器實例列表頁面,在服務器實例信息的最右側,操做列,點擊登陸。
在彈出頁面,選擇紅色方框中的其餘方式(VNC),輸入密碼,登陸到服務器。
登陸後,直接會顯示top命令以後的信息,最下面有一段信息,提示進程22929有異常,須要將該進程關閉,點擊q退出top信息顯示,而後輸入kill -9 22929,關閉進程。
再回到服務器實例的監控頁面,CPU利用率立刻就下來了,使用率不到10%,而後使用SSH登陸服務器,正常登陸。鏈接mysql數據庫,也可以正常鏈接,問題獲得解決。
3 總結
第一次碰到不能登陸SSH的問題,按照重啓服務器,騰訊雲的幫助文檔,多方嘗試,最終,利用VNC登陸服務器,按照提示信息,關閉異常進程,將問題解決。
備註:top命令簡單操做
輸入top以後,會顯示cpu、內存、進程等相關信息。
Shift+t:按照cpu使用率排序進程
Shift+m:按照內存使用率排序進程
q:退出,回到命令行
kill -9 -xxx:結束xxx進程。