[PHP] 使用strace排查接口響應速度慢過程

有個內部接口 , 另外同事會調用該接口 , 把一份郵件內容上傳到這個接口php

對方反應該接口有調用超時現象函數

 

排查思路;php-fpm

排查access日誌 , 看到有499狀態碼 , 響應時間是5秒 , 能夠肯定的是對方設置了超時時間是5秒日誌

 

對方想要把超時時間儘可能小 , 所以繼續排查代碼中可能速度慢的地方 , 使用strace監聽全部的fpm進程接口

strace $(pidof 'php-fpm'|sed 's/\([0-9]*\)/-p \1/g')  -s 1024 -tt -r   2>&1|awk '{if ($3>0.1) print $3,$0}'進程

 

具體解釋awk

-s 1024是展現的數據大小sed

-tt 顯示毫秒值數據

-r 顯示每一個系統調用的耗時時間

 

awk裏面的$3獲取的就是系統調用的耗時字段 , 打印出大於0.1秒的系統調用函數

能夠看到全部耗時超過0.1秒的系統調用 , 對照代碼就能夠找到了

相關文章
相關標籤/搜索