我已经读到,node.js websocket模块ws和socket.io中都出现了内存泄漏。它已经存在多年了,我想知道如何修复它。
在以下几个例子中提到了这一点:
考虑到现在是2021年,是否将perMessageDeflate键设置为false,并可能预装jemalloc仍然是最好的解决方案?
发布于 2021-06-08 10:59:14
我对这个问题的基本理解如下(不要引用我的话):
perMessageDeflate
键赋予值false
。这就是:const wss = new WebSocket.Server({ server:httpsServer, perMessageDeflate: false });
显然,对于那些想压缩他们的信息的人来说,这不是一个解决方案。但值得一提的是:
另外,一些人已经注意到,设置perMessageDeflate: false只会减少问题,但并不能完全解决问题。我将提请您注意这一讨论,据说打开和关闭websockets时使用的一些剩余和常量(即不增加)内存是正常的(顺便说一句,我不一定说这是正确的):https://github.com/websockets/ws/issues/804#issuecomment-302612661
至于预压Jemalloc,似乎并不能解决这个问题。尽管上面的代码不起作用,但肯定值得研究(或尝试)。
那么,preMessageDeflate: false
是目前最好的解决方案吗?据我理解,我会说是的。
如果任何人对此有更正或更多信息,请添加。
https://serverfault.com/questions/1066025
复制相似问题