[英]Node.js how to check if some code is blocking in a server application
我已經在node.js中編寫了一個服務器應用程序,該應用程序使用socket.io和RS232無線設備從某些硬件接收入站錯誤消息。
在過去的兩個月中,我的服務器一直在完美地接收錯誤消息,但是在最近的兩天中,服務器一直被隨機鎖定,並且在終端中按Ctrl + C
之前不會響應任何入站消息。 我通常希望這能關閉服務器,但是當服務器阻塞時, Ctrl + C
會一直阻塞事件循環,然后處理事件循環被阻塞時似乎正在排隊的入站消息(這只是一個理論)。
我相信我的理論是正確的,因為控制台將掛在諸如waiting for data...
類的消息上,然后稍后按Ctrl + C
將批處理15個將數據推送到我的后端的請求。
最初,我無法在代碼中發現任何問題,而且由於該應用程序運行了2個月沒有出現問題,我感到更加困惑。 我的問題是,是否有任何易於使用的分析工具來查看我的服務器應用程序在哪里凍結?
也許您可以使用火焰圖http://www.brendangregg.com/flamegraphs.html找到問題。 您可以在這里找到更多信息
另外,我建議您對應用程序進行內存配置,因為一段時間后出現問題是該問題的常見征兆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.