[案例分享]伺服器的CPU用量出現異常時,該怎麼解決?!

昨天一直收到[MyAWS]傳來的警示簡訊,通知我客戶的AWS伺服器CPU用量異常,因此收到簡訊的當下,我就立刻連進伺服器查看Log,看看是什麼原因造成CPU用量激增。

 

一般來說伺服器出現CPU用量異常時大概會有幾個狀況:

#網站被攻擊,例如透過暴力攻擊一直來try WordPress、phpMyAdmin等常見程式的漏洞或密碼
#資料庫的效能差,例如表單沒規劃好、查詢語法寫得不好、資料量太大或是異動太頻繁,使用Disk IO變差,連帶影響到CPU
#被入侵成為儡傀機,然後被用來挖礦、濫發垃圾信件(在雲端是比較不必擔心這個問題,因為有被限制),或是成為攻擊中繼站
#某些程式出現異常,例如有介接外面服務的API,然後介接的程式一直在等待外部API回傳資料因而造成CPU用量異常

 

當然,這些只是常見的狀況,實際問題發生的原因還是要自己詳查,而且最好是在問題發生時的當下詳查。

 

昨天經我詳查確認後發現是httpd的服務造成,經過我處理後就有明顯的下降(將攻擊網站的IP封鎖掉)。

 

像平常一樣,主機有問題時我就會主動幫客戶解決問題,只要客戶的伺服器服務運作正常,我就不會特別通報給客戶,因為每天都有網路攻擊事件,若每個事件都要告訴客戶,客戶會很煩的。

 

令我意外的是,客戶在幾個小時後告訴我該主機無法正常登入網站,我在封鎖IP時有特別避開他們公司的IP,所以不會是因為封鎖IP而造成的問題,因此我決定再連進主機查看是什麼問題。

 

根據客戶回報的問題狀況,我很快就找到網站無法登入的原因:無法正常儲存登入的session資料

 

接著再查為何無法儲存seesion資料是什麼問題造成的,發現是系統磁區空間已完全用盡(若是此時重開機就完了)~

 

然後再來詳查是什麼造成系統磁區用盡,查了各個目錄,終於找到真正的問題根本:資料庫Log檔突然大量激增

 

在經過緊急處理,客戶告訴我問題之後不到十分鐘,客戶的伺服器服務就恢復正常運作了(由於是用雲端的伺服器才能如此迅速解決這個問題,這次還做了預防問題再發生的措施)!

 

後來客戶有告訴我,原來他們最近有新專案在跑,在伺服器建了新的資料庫給他們的客戶用,所以有大量的資料要存到資料庫裡(他們沒注意到表單的規劃型態,因此造成db的log檔大量激增,才會快速成長到5.6GB)…

 

前幾天我也幫另一個客戶將電商網站從測試伺服器移至正式的伺服器運作,所以在這裡順便分享一下。

一般網站在移站至不同伺服器時會有下列幾種情況:

1.網址有變、程式目錄不變、資料庫名稱不變
2.網址有變、程式目錄有變、資料庫名稱不變
3.網址有變、程式目錄有變、資料庫名稱有變
4.網址有變、程式目錄不變、資料庫名稱有變
5.網址不變、程式目錄不變、資料庫名稱不變
6.網址不變、程式目錄有變、資料庫名稱有變
7.網址不變、程式目錄不變、資料庫名稱有變
8.網址不變、程式目錄有變、資料庫名稱不變
依照不同的情況,處理的方式會略有不同,但不管怎麼變,只要我能夠進入原始網站的主機備份原始程式和資料庫(LAMP架構且程式沒有加密或編譯過),我就可以成功進行完整搬遷…

 

身為客戶的雲端顧問,除了協助他們做好事先規劃、負責日常的維運備份和諮詢服務之外,像這種偶發的事件我也都會為客戶盡力解決,而且不會另外收費,因為對於願意付費支持我專業的客戶們,我都是心存感謝,只要我能力所及,能為他們多做一些是我回報他們的方式之一(例如找我代管維運AWS主機,大多數服務我就不會另外加收錢)。

 

我自己是不接臨時性的叫修,像上面的例子,若是不知道伺服器服務與運作架構,一旦出問題時就要全面清查、從頭找起,甚至可能會開不了機、連不進伺服器,更別說要救資料、讓服務恢復正常運作了;還有許多企業是在AWS上的EC2出問題才想找我來幫忙,這種我也不接,因為事先沒做好備援的規劃,等到出問題才想來做救援,十之八九都是沒救的,就算大費週章救回來,這種企業願意付的錢也不會多,是吃力又不討好的案子。

 

台灣是資訊很透通的國家,加上強大的搜尋引擎和各種分享文,使得「專業」→「知識」的變化過程更快,也因此讓許多人會以為不需要付費尋求專業人士的服務,自己搜尋、爬文就可以解決問題,我相信若是本身有相關技術背景的人可以做到,但一定要花更多時間,甚至可能無法根絕問題(例如效能不好也許是因為程式和資料庫的關係,而不是主機規格太差)~

 

以上面的案例來說,就要懂得相關的這些專業:

#AWS雲端服務
#Linux系統
#httpd服務
#MySQL服務
#Php程式
#系統資安

 

現代人很容易有資訊焦慮症,深怕自己少學了什麼新科技、新技術就會被淘汰掉,於是什麼區塊鏈、AI、機器人啦的論壇盛會一個一個去參加,聽到了一大堆新名詞、新概念,然後呢?寧願花大錢去聽這些論壇,卻不願意聘請專業人才、也不願意付費委外請專業的公司來幫忙,或是只想花少少的錢(甚至不想花錢)請朋友來幫忙...

 

聽了千百遍,沒自己動腦去思考、動手去實做,永遠還是門外漢,很多人不知道的是很多新科技只是現有的技術換個新名詞重新包裝(就像行銷產業一樣),然後就講得天花亂墜、到處跟風;連最基礎的雲端服務不懂也不重視,然後就要搞IoT、大數據、AI、機器人(就像蓋摩天大樓卻不重視大樓的地基一樣充滿高風險)…

 

其實,資訊科技對於企業或個人來說都越來越重要,企業應該要有買保險的觀念,不要有心存僥倖的心態、等出了問題才來後悔(就像大多數人每年要支付的各種保險,也是擔心臨時出了意外或生病時沒有保障才會花錢去保)。

 

找到對的專業顧問才能協助企業避免常見問題的發生、減少不必要的成本支出、降低使用雲端的風險!

 

需要專業的雲端顧問時,來找我吧!

*我能協助企業避免常見問題的發生
*我能協助企業減少不必要的成本支出
*我能協助企業降低使用雲端的風險
*不需要企業自行花錢和時間培育
*讓企業不必擔心一例一休和離職的問題
*我不是比價格而是比專業和用心

 

全台最用心的雲端顧問
李志文 ken.lee@tts.bz