【发布时间】:2016-09-01 08:45:36
【问题描述】:
我最近一直在使用WSO2 Message Broker(版本:3.1.0),以便使用JMeter 作为jms 客户端发布和使用消息。所以我有我的发布者 Java 程序,我从中发布消息,我试图每秒发布 4000 条消息。如有必要,我可以提供 sn-p。
我通过在无头模式下运行JMeter 命令jmeter -n -t C:\Users\ctsadmin\Downloads\wso2MB\apache-jmeter-2.13\bin\GamesSubscriber.jmx -l C:\Users\ctsadmin\Downloads\wso2MB\apache-jmeter-2.13\bin\mytest_results.jtl 来使用这些消息。我还打开了VisualVmwindow,以查看测试的内存消耗。根据下图,前 15 分钟发布和消费都还可以,但之后,VisualVm 突然出现炒作并耗尽内存。我在下面附上VisualVM 的截图。
我也使用JProfiler 检查了WSO2 MB 的heap dump。也附上了它的截图。
可能是什么问题?我应该做出哪些改变?比如增加heap 的大小?任何帮助将不胜感激。
编辑:我在hereby 附加日志文件和堆转储。
【问题讨论】:
-
您能告诉您配置的后端存储吗?它是默认的 H2 数据库还是其他 RDBMS 存储?对我来说,似乎数据库无法处理负载,并且根据 JProfiler 堆转储分析它已脱机。在这种情况下,MB 将启用基于全局错误的流量控制,并且不接受来自外部的流量。但我需要更多详细信息来确定确切的根本原因,例如 wso2carbon.log 文件和堆转储。
-
这是默认的 H2 数据库。我已在问题的已编辑部分附加了日志文件和转储。
标签: java garbage-collection wso2 messagebroker wso2mb