我正在开发一个基于 Netty 的服务器,其中并发连接数应该在 100000 左右。但是,当我将该数字设置为 100 时,我并没有用完内存,但是当我将数字增加到 10000 时,我得到了 outmoemory 缓冲区异常。知道 Netty 可以处理的比我预期的还要多,我想知道如何设置 serverbootstrap 来满足如此大的数量。
谢谢你。
你用多少内存运行这个程序?由于它被OutOfMemoryException
抛出,看起来你可以将-Xmx
设置更改为类似的东西-Xmx2048m
,看看它是否有效。这可能与 netty 本身没有任何关系。
如果您确信存在泄漏,则使用诸如visualvm之类的工具(顺便说一下,它是免费的!)来分析是否有任何 netty 对象在堆上,即使在请求/gc 完成后也是如此。
在 linux 中,运行如此多的并发连接时通常会too many open files
出现异常,有大量关于如何解决它的文档。