目前就卡到這個地方走不動了,不知道怎么調(diào)試了,為什么會出現(xiàn)這種問題
看起來是進程一直在等待鎖釋放。看下業(yè)務(wù)有沒有鎖的操作,那里可能死鎖了
業(yè)務(wù)里邊做的都是數(shù)據(jù)庫的查詢操作,按說應(yīng)該不會鎖吧,現(xiàn)在的代碼就是在示例代碼的框架上添加的,就是推送消息的時候查詢一下數(shù)據(jù)庫數(shù)據(jù),每次數(shù)據(jù)庫查詢之后,就會把數(shù)據(jù)庫鏈接給關(guān)閉了,使用的是tp框架
重啟web-msg-sender,運行status查看進程pid,運行命令
nohup strace -ttp $進程pid -o /tmp/strace.log &
等待下一次busy,這樣進程從正常狀態(tài)到競爭futex之間的系統(tǒng)調(diào)用會被記錄下來,到時候看下futex之前有哪些調(diào)用大概就能判斷出來哪里有問題了。
如果說我把所有的業(yè)務(wù)調(diào)用都放到推送邏輯外邊,worder只負責(zé)推送文本內(nèi)容,這樣的是不是可以避免出現(xiàn)這種busy的情況