在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/