0
網頁加載速度很慢,甚至開始發送頁面數據需要6秒左右,然後在0.2秒內發送,並在0.19秒內生成。如何調試php-fpm的性能?
我懷疑這是由PHP或瀏覽器造成的,所以這個問題必須與通過nginx的和PHP5-FPM
的服務器管理員說,確實是這個問題是由錯誤配置引起的處理服務器fpm或nginx
如何調試減速的原因?
設置:PHP5.3,MYSQL5,Linux的,Nginx的,PHP5-FPM
網頁加載速度很慢,甚至開始發送頁面數據需要6秒左右,然後在0.2秒內發送,並在0.19秒內生成。如何調試php-fpm的性能?
我懷疑這是由PHP或瀏覽器造成的,所以這個問題必須與通過nginx的和PHP5-FPM
的服務器管理員說,確實是這個問題是由錯誤配置引起的處理服務器fpm或nginx
如何調試減速的原因?
設置:PHP5.3,MYSQL5,Linux的,Nginx的,PHP5-FPM
這個問題可能是對的StackOverflow太廣,因爲這個問題可以跨越多個頁面和主題。
但是,如果問題是如何調試PHP-FPM的性能,那麼答案會更容易 - 使用Strace和下面的腳本。
#!/bin/bash
mkdir trc
rm -rf trc/*.trc
additional_strace_args="$1"
MASTER_PID=$(ps auwx | grep php-fpm | grep -v grep | grep 'master process' | cut -d ' ' -f 7)
summarise=""
#shows total of calls - comment in to get
#summarise="-c"
nohup strace -r $summarise -p $MASTER_PID -ff -o ./trc/master.follow.trc >"trc/master.$MASTER_PID.trc" 2>&1 &
while read -r pid;
do
if [[ $pid != $MASTER_PID ]]; then
#shows total of calls
nohup strace -r $summarise -p "$pid" $additional_strace_args >"trc/$pid.trc" 2>&1 &
fi
done < <(pgrep php-fpm)
read -p "Strace running - press [Enter] to stop"
pkill strace
該腳本將附加strace所有運行PHP-FPM實例。任何到達php-fpm的Web服務器的請求都會記錄下他們的所有系統調用,這將允許您檢查哪些服務器花費最多時間,這將使您能夠首先確定需要優化的內容。另一方面,如果從Strace輸出中可以看出PHP-FPM正在快速處理每個請求,它也將允許您消除該問題,並允許您調查nginx,以及nginx如何與PHP-FPM交談,這也可能是問題所在。
更改了標題,使它不那麼寬泛,謝謝 –
我注意到這個腳本在Debian上不能很好地工作,我將下面的'mkdir'語句改爲'mkdir -p','MASTER_PID = $(。 ....)'MASTER_PID = $(pgrep -f「php-fpm:master process」)''的行 –