資料庫伺服器當機2小時之"找不出原因"

songxue77發表於2021-01-05

背景:

昨天公司網站19:50分開始出現訪問延遲,20:00左右的時候PHP已經開始吐too many conections錯誤,導致所有網頁都是500 Error。

伺服器配置:

Web伺服器有8臺,資料庫伺服器有3臺(1 master, 2 slave),標準的LAMP架構,CentOS6(Apache), PHP5.4, MariaDB

詳細情況:

web伺服器tcp connection和CPU負載率都很正常,沒有超出正常範圍,主要是 1號 slave資料庫伺服器出現了Connection滿載,CPU飆升到100%,導致處理速度變慢,從而沒有響應的問題,master和2號slave資料庫雖然負載升高,但CPU遠沒有達到100%

嘗試了的方法:

  1. 把slave1號下架,發現所有負載集中到了slave2號,直到CPU 100%以後網站掛掉
  2. 把slave1,2號全部下架,發現master一個伺服器足以處理所有請求,網站恢復正常
  3. 重新上架slave1,2號,又出現slave1號一個伺服器CPU滿載的情況,網站掛掉
  4. 最後沒有辦法,只好讓master一個資料庫伺服器頂著,至少網站可以正常執行

找尋問題:

因為新年第一天網站就掛掉,上邊給的壓力非常大,務必要在今天內找出問題原因,但是毫無頭緒啊。。
主要是因為兩點

  1. 為什麼只有1號slave伺服器升高,2號卻沒有問題?
  2. 為什麼一個master可以正常服務,跟兩個slave一起上就出現問題(3個伺服器都是24核64G一樣的配置)

至今都好好的,也沒搞什麼特別的活動,為什麼突然會掛掉?新年是不是有什麼變化?
大家有沒有遇到過類似現象呢?多謝了:sob:

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章