當 PHP 是一個模組時,從 httpd 實例到 PHP 腳本進行跟踪

當 PHP 是一個模組時,從 httpd 實例到 PHP 腳本進行跟踪

我試圖弄清楚到底發生了什麼,導致隨機httpd工作人員的 CPU 使用率如此之高,但我很難弄清楚正在請求什麼 PHP 頁面,以便我可以嘗試找出為什麼它會被佔用上CPU。如果 PHP 作為常規(而不是快速)CGI 完成,我可以查看進程列表,但我們使用的是 mod_php。

有沒有辦法讓 PHP 5.3 報告目前運行腳本的效能統計資料?如果我們決定最終走這php-fpm條路,這也可能是相關的。

答案1

如果啟用mod_status並打開ExtendedStatus,它將顯示每個工作人員正在處理的請求。

答案2

首先,我不確定你是否可以使用普通的 php 來做到這一點,但你可以使用 php-fpm 在這個連結中向你顯示一個狀態頁面,你可以看到如何做到這一點: https://rtcamp.com/tutorials/php/fpm-status-page/

其次,您可以在 php-fpm 中啟用 Slowlog,這樣您就可以看到哪個腳本運行得如此緩慢。這是如何執行此操作的範例: https://rtcamp.com/tutorials/php/fpm-slow-log/

相關內容