我找到對應(yīng)的busy進程,然后嘗試用kill -SIGALRM?16060 來看是否是系統(tǒng)調(diào)用阻塞導(dǎo)致的。而strace -ttp?16060 顯示了如下信息:04:15:04.140981 poll(, 1, 1000) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
04:15:04.147573 --- SIGALRM {si_signo=SIGALRM, si_code=SI_USER, si_pid=20549, si_uid=0} ---
這個信息代表著什么?老哥們求助
證明進程一直在等待 fd=11的這資源返回數(shù)據(jù),通過lsof 能看到這個資源到底是什么,有可能是http連接請求或者數(shù)據(jù)庫等等都有可能。
lsof參考文檔?http://doc.workerman.net/debug/busy-process.html
謝謝,問題找到了,lsof 看到有個tpc連接。最后發(fā)現(xiàn),代碼里面一個post的curl請求,而這個請求沒有給超時時間,而在workman下和普通php運行模式,在這里是有區(qū)別的。普通模式下就會自動超時,而workman下就會一直等待curl結(jié)果?,F(xiàn)在加上了一個超時時間,目前沒有出現(xiàn)大量busy的情況了