我正在开发一个基于 Netty 的服务器,其中并发连接数应约为 100000。但是,当我将该数字设置为 100 时,我不会耗尽内存,但当我将数字增加到 10000 时,我遇到了 outmoemory 缓冲区异常。知道 Netty 可以处理的内容甚至超出了我的预期,我想知道如何设置 serverbootstrap 来满足如此大的数量。
谢谢。
最佳答案
您运行该程序有多少内存?由于抛出的是 OutOfMemoryException
,因此看起来您可以将 -Xmx
设置更改为 -Xmx2048m
之类的内容,然后看看它是否有效。这可能与 netty 本身没有任何关系。
如果您确信存在泄漏,请使用 visualvm 等工具(顺便说一句,这是免费的!)即使在 requests/gc 完成后,也可以分析堆上是否有任何 netty 对象。
在 Linux 中,当运行如此多的并发连接时,通常会出现打开文件过多
异常,有大量文档介绍如何解决该问题。
关于java - Netty 和最大并发连接大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18915132/