NGINX 快取行為不當導致系統陷入瘋狂

NGINX 快取行為不當導致系統陷入瘋狂

我們使用 CentOS/nginx fastcgi_cache 來快取對伺服器上 PHP 檔案的請求。該檔案的存取頻率很高,更新頻率也很高,因此它有 1 秒的快取。

通常,當查看訪問日誌時,我們會看到如下內容:

00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "HIT"
00:01 REQUEST 3 "HIT"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "HIT"
00:02 REQUEST 6 "HIT"

當問題發生時,nginx 會發生一些事情,日誌突然開始看起來像這樣(即使是同一秒,所有日誌都會過期):

00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "EXPIRE"
00:01 REQUEST 3 "EXPIRE"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "EXPIRE"
00:02 REQUEST 6 "EXPIRE"

重要提示:就在這種情況發生之前,php-fpm 報告:警告:[pool www] 伺服器達到 max_children 設定 (35),請考慮提高它 注意:終止... 注意:退出,再見!注意:fpm 正在運行,pid 27544 注意:準備好處理連接

(這不是正常行為,而且非常罕見)

我嘗試在工作中重新啟動 php-fpm 以查看它是否會影響快取 - 不行。我還嘗試過對經常調用的特定檔案進行壓力測試,但我不能讓系統變得瘋狂。

有人知道這裡還有其他可能性嗎?還有什麼我可以調查的嗎?

PS 為了在發生這種情況時修復它,我們停止對文件的請求並重新啟動服務,它會再次工作。

謝謝你的幫助,阿隆

相關內容