我正在测试 node-webrtc 我在16核CPU和32GB内存上启动了pm2进程,一段时间后节点进程停止响应,Url返回无法到达,视频流停止。
我注意到的是
1) 每次它都在内存消耗3.5 GB,CPU 900%时停止,但我试图将旧的内存大小增加到24 GB,然后在达到9 GB内存和1100 cpu后随机失败。
2) 在pm2日志中,我发现
"(node:3397) MaxListenersExceededWarning: 检测到可能的EventEmitter内存泄漏。添加了11个newBroadcast监听器,使用emitter.setMaxListeners()增加限制。使用 emitter.setMaxListeners()来增加限制",但是这个警告之后进程一直在运行。
A) 不确定这是内存泄漏的问题?
B) cpu 消耗(1600%中的900%),因为我知道节点是单线程进程,所以是否有任何机会将线程分配给主节点进程达到其峰值?
请给我任何建议,我如何能调试它。
当时的并发用户数在110-120左右。
问题是服务器的出站带宽.服务器有最大的上行速度128 MBs (~1 Gbps)和流消耗最大的允许带宽,之后连接到服务器就无法到达...... 通过将我们的服务器换成500 MBs带宽来解决。