前幾天有朋友向我們反饋說打開我們的網站特別慢,而他是想讓我們幫他做網站并提供網站運維服務的,這樣的反饋對我們而言確實不是什么好事情,我開始的反應就是認為他是第一次打開我們的網所以這么慢,而我這里因為經常打開自己的網站所以感受不到有多慢。然后我ctrl+F5一看果然比蝸牛還慢,我此刻意識到問題的重要性了。
憑借我對這些問題的直覺,首先就是意識到服務器出故障了,因為我們的網站流量不可能就在這幾天內增加多少,也不可能是因為我們程序有諸如死循環的故障。那個時候我感覺很無奈,因為在我之前在網上看到的那些解決方案針對的問題我們自己的這個并不會出現,比如我們一直沒有修改網站程序所以不太可能造成網站程序上的錯誤,也一直沒有更改服務器的配置搜易也不太可能是WEB服務器配置的故障。
我們看了服務器的資源消耗情況,發現服務器的內存消耗在正常水平,而服務器的CPU資源消耗一直是爆滿的100%。因為問題已經出現了,而且這樣的問題可能讓我們失去訂單,因此我們必須盡快的解決它。于是縱然我們知道網上常用的解決方案所針對的不是我們出現的問題,但我們還是去嘗試了,比如調整Apache的配置、查看Apache的錯誤日志、Apache和操作系統的沖突等等,但沒有任何作用,比如我們查看Apache的日志沒有任何錯誤,只有我們之前重啟等操作的警告或者通知信息。
我們甚至嘗試重啟Apache,結果發現已啟動這個服務CPU馬上就飆到了100%,我們直接重啟了服務器也沒任何作用。
到這個時候我們已經排查一個多小時了,但依然沒有任何進展,于是我們想到了是否有大量流量的攻擊,但查看我們這臺服務器的幾個主要網站的日志的時候發現并沒有固定的IP頻繁訪問網站,也就不是那種專來做攻擊的。
就在這個時候我們突然發現我們的一個WordPress的演示網站的錯誤日志比我們另外的運營狀態的正式網站還要多,當然的錯誤日志體積達到數百MB,這個時候我們意識到了問題的所在。不是有人想要攻擊我們的服務器、也不是我們的網站程序出現故障了、更不是我們的服務器配置錯誤了;原因就是這些發廣告的機器,做互聯網的都知道現在這種垃圾廣告發布機到處都是。然后我查詢了數據的大小,發現這個演示站的評論數據表高達500MB,里面的記錄數達到了30萬條,而且都是這兩天產生的,而且相應的用戶表記錄數也很多。
因此到這里就徹底找到了問題的所在,那就是垃圾廣告信息的瘋狂發布,除了給網站帶來較高的訪問壓力外,在發布廣告的過程中廣告發布軟件可能錯誤訪問網站于是產生大量的錯誤日志,也就是說WEB服務器Apache在承受正常訪問外還需要不斷地寫錯誤日志,于是就需要消耗大量的CPU資源,因此就造成了服務器CPU資源爆滿,網站卡殼。
而只要找到問題后解決起來就比較簡單了,那就是去掉那個演示站,或者給那個演示站設置相應的權限,減少垃圾信息的發布;這樣CPU的使用率馬上下降到20%以下恢復到正常水平。
這樣不得不贊以下西部數碼云服務器,因為在這樣的情況下只是服務器變慢,而不是直接宕機,這也是我做西部數碼代理這么久第一次最真切地感受到產品的品質。另外也吐槽下互聯網上的網站,簡直是抄襲成風。比如搜索解決Apache的httpd.exe進程占用CPU過高后出現的文章內容就是那幾種,而且每一種可能被數千個網站聲稱為自己原創。
所以這里也提醒大家,網上的資料僅供參考,最終還是需要自己去思考總結,這樣會有更多的收獲。