我有一个服务器java应用程序使用jetty websocket服务器和bittorrent跟踪器用于websocket客户端。
问题是,当我与许多客户端一起运行时,我的java应用程序中有内存泄漏。
我通过"htop“和"jcmd PID VM.native_memory”检查java应用程序的内存使用情况。
我使用的jetty websocket版本是jetty-9.4.15.v20190215,我尝试了更新版本jetty-9.4.44.v20210927,但是内存仍然泄漏。
我已经用jetty websocket客户端构建的客户端进行了测试,内存泄漏不会发生。
我还测试了以下选项
。
=>基本上服务器只接收来自客户端的连接,内存泄漏仍然发生。
问题是
导致内存泄漏的
中提交的内存?
发布于 2022-04-05 07:25:51
“哪里会导致内存泄漏?”
可能是你的密码。例如,如果websockets在服务器端没有正确关闭,它们可能会占用各种资源.包括堆外缓冲区等。
Jetty代码中有一个bug会导致这种情况,这并不是不可想象的,但如果是的话,人们会期望其他人会报告它,诸如此类。(您是否检查了的Jetty,确认了Jetty代码中内存泄漏的报告?)
无论哪种方式,你都需要做一些调查。
为什么"htop“中的物理内存(RES)大于JVM中的内存使用量?
这并不稀奇。除了Java堆之外,典型的JVM使用大量内存。这种用法包括:
JVM可执行文件所使用的内存以及它所uses.
。
https://stackoverflow.com/questions/71747575
复制相似问题