【故障公告】龍捲風來襲:突增的併發請求,撐不住的CPU

部落格園團隊發表於2022-03-10

(上圖是資料庫連線數監控圖)

非常抱歉,今天下午 16:50-17:40 期間,一場龍捲風突襲園子,突增的併發請求狂卷部落格站點的 pod,由於風力巨大(70%左右的增量),pod 的 cpu 不堪重負,造成部落格站點無法正常訪問,由此給您帶來麻煩,請您諒解。

在沒有龍捲風的一般大風(訪問高峰)情況下,部落格站點單個 pod 的 cpu 通常消耗在 3-4 核之間,所以我們採用了下面的 pod 資源限制配置:

resources:
  requests:
    memory: "4Gi"
    cpu: "3"
  limits:
    memory: "6Gi"
    cpu: "5"

但今天龍捲風風力太大, 5 核 cpu 也扛不住。開始我們試圖通過增加伺服器與更多 pod 減輕單個 pod 的 cpu 壓力,但發現這樣於事無補,不僅已有 pod 的 cpu 沒有明顯下降,而且新增 pod 的 cpu 也是扛不住,可能是 k8s service 單位時間轉發給單個 pod 的併發請求需要超過 5 核以上 cpu 才能處理得過來。

這時你也許會問為什麼不直接調高 cpu 限制?我們現在使用的 k8s 叢集多數使用的是高配伺服器(至少8核),的確具備調高 cpu 限制的條件。但是修改 cpu limit 會引起所有  pod 重新部署,我們擔心在訪問高峰進行這個操作會雪上加霜,所有沒有優先採用這個方法。

加伺服器加 pod 解決不了問題,我們也只能試試調高 cpu 限制,在調高限制並 pod 完成重新部署後很快就恢復正常,但我們不能確定是調高 cpu 限制藥到病除,還是巧合,正好在調高 cpu 限制後龍捲風停了。

就這樣經歷了一次龍捲風襲擊造成的故障。抱歉,給大家帶來麻煩了。

相關文章