Apache-2.4

PHP 腳本在 Apache 上突然載入很慢

  • October 1, 2021

我正在測試為什麼有時我的 PHP 腳本需要很長時間才能通過使用 mpm_event 的 PHP-FPM 7.4 在我的 Apache 2.4 Ubuntu 伺服器上傳入(> 30 秒)。伺服器在過去幾個月中正常工作,幾天前開始發生這種情況,我沒有改變任何東西。我重新啟動了,它沒有幫助。

我做了一個簡單的test.php. 有時它會正常載入(<100ms),但有時需要 1 分鐘才能載入:

&lt;?php echo "test\n"; ?&gt;

在此處輸入圖像描述

  • 伺服器的 CPU、RAM 和 IO 都正常(用 勾選htop)。
  • 靜態 HTML 文件的載入沒有任何延遲。
  • 通過 SSH 控制台在本地執行腳本非常快。
  • Apache 錯誤日誌沒有顯示任何異常。
  • 我通過檢查來自同一 /16 子網的連接 IP 的數量來檢查是否存在某些 DDOS 攻擊,並且沒有發現任何奇怪的東西(例如 >100 個連接)。

我怎樣才能進一步調試它以了解為什麼會發生這種情況?


一些可能有幫助的調試輸出:

sudo service php7.4-fpm status

在此處輸入圖像描述

我想我已經找到了解決方案,但是如果您有任何建議,請告訴我或發布另一個答案。

我檢查/var/log/php7.4-fpm.log並看到了很多這樣的條目:

$$ 30-Sep-2021 03:36:46 $$警告:$$ pool www $$伺服器達到 pm.max_children 設置 (5),考慮提高它

在此處輸入圖像描述

所以我把它提高max_children到 15,它似乎有幫助。

這種行為可能有幾個原因:

  1. 如果這台 Web 伺服器處理來自外部網路的請求,那麼隨著流量的增加,負載可能會增加,從而導致伺服器響應時間增加。
  2. 如果您的腳本使用對外部資源的呼叫,那麼在這種情況下,由於外部資源的響應速度較低,您的伺服器的響應時間可能會增加。

日誌消息:

[30-Sep-2021 03:36:46] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

只是增加負載的證明。

在這兩種情況下,您都應該通過分析對腳本的請求數量來確定負載的原因,如果有對外部資源的呼叫,請確保它們正常工作。

引用自:https://serverfault.com/questions/1079155