java - Mule3.2 重负载下 GC 频率过高

标签 java garbage-collection out-of-memory mule

在Mule 3.2的高负载下(100个线程并发发送请求),通过jprofiler,我可以看到创建了大量的对象实例(每秒大约500mb),并且占用了堆年轻区90%以上的空间,导致jvm每2秒触发一次gc。

为什么?这正常吗?或者这是一个错误

jvm 参数:

-Xms=2048m -Xmx=2048m -Xmn=768m -XX:PermSize=256m -XX:MaxPermSize=512m -Xss256k -XX:+UseConcMarkSweepGC

谢谢

最佳答案

对于 Mule 收到的每个请求,都会创建大量对象( session 、事件、消息、在许多地方充当闭包的匿名类)。

此外,某些传输可能会创建更多的对象,而其他传输可能会创建更少的对象,具体取决于它们的技术需求(例如 HTTP 将创建额外的对象来存储 header 、cookie...)。

所以这不是一个错误,但我也不能说这是一个功能。我认为减少每个请求创建的对象数量对于 Mule 来说是一个很好的举措......

关于java - Mule3.2 重负载下 GC 频率过高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699940/

相关文章:

c# - 这个ChildWindow会被GC回收吗?

内存泄漏的java堆和线程分析

python - 在 Numpy 中创建笛卡尔积时出现 MemoryError

scala - 小数据大小与可用内存的执行程序 OutOfMemoryExceptions

java - 防止 Beanshell 中的变量消失

java - API 21 中组合多种排序的最佳方式

java - 为什么这段代码不能正常工作?

c# - 桌面应用程序 : Architectural Frameworks?

garbage-collection - System.gc() 会触发什么样的 GC?

ios - 如何将文件(>64M)上传到 Azure Blob 存储[iOS]