12

我在我的开源项目中使用 Apache MINA。但是,我遇到了性能障碍,无法处理从移动设备上传到服务器的大型有效负载。我收到内存不足错误。我从未使用过 Netty,并希望将 MINA 与 Netty 交换。

我对 Netty 团队的问题是 Netty 在大量传入有效负载的负载下如何执行。在我的性能测试中,我使用 1000 个并发设备生成负载,每个设备发送 1MByte 大小的有效负载。它倾向于在 5 分钟内生成 1GIG 的上传数据。这种负载往往会破坏 MINA。

Netty 能否支持这种负载等等。非常感谢您对此的意见。

顺便说一句:我确实使用 JProfiler 分析了应用程序。它确实指出 MINA 堆栈是罪魁祸首。我什至完全断开了我的服务器端堆栈,并将其留在消耗数据并返回数据的普通 MINA 服务器上。在这种模式下,即使我的后端没有进行真正的处理,它也会在大约 15 到 20 分钟内开始耗尽内存

4

2 回答 2

1

这似乎是对库的不正确使用,而不是库本身的实际问题。如果不是用户错误,IMO Netty 可能会做同样的事情。我以前在高带宽应用程序中使用过 MINA,但没有这个结果。可能是您的网络已经饱和,缓冲区只是消耗了所有等待上传的内存。只是我的2美分。

于 2012-11-22T04:54:25.783 回答
0

我过去曾在一个项目中使用过 Netty,我们试图构建一个能够通过 HTTP 流式传输大量数据的平台。在您概述的场景下,我们没有机会对 Netty 进行负载测试。当我们考虑选择哪个框架时,Netty 是因为它的性能和 API 优于 MINA 和其他类似框架。有很多网站进行了 Netty 与 MINA 的比较。IMO,您应该能够通过使用 Direct ByteBuffers 的组合并在读取数据时将数据写入磁盘/存储来满足您的用例。

于 2012-12-27T22:32:59.697 回答