使用Jmeter的JBOSS wildfly 10性能调整

时间:2017-08-21 10:33:59

标签: performance java-ee jboss jmeter wildfly-10

这是关于使用JMETER工具测试REST API并检查吞吐量。

我对使用JMETER工具非常陌生。

来到我的应用程序,它是一个简单的REST API,它根据几个条件将XLS文件转换为JSON格式的数据。 这在服务器上运行(WildFly V10)。

我的JMETER中的配置:
线程数:1000
加速时间:10
循环次数:1

吞吐量保持不变,每秒10-12次点击。

我还在 standalone.xml 文件中针对不同的子系统为JBOSS wildfly服务器10进行了一些配置设置,如下所示:

1)  Configuring undertow subsystem:
modified the default max http connections from 10 to 100 till 1000
<http-listener name="default" **max-connections="1000"** socket-binding="http" redirect-socket="https" enable-http2="true" buffer-pipelined-data="true" />

2)  Setting io subsystem:
configured io-threads and max-threads from 10 to 100 till 1000
<worker name="default" **io-threads="100" task-max-threads="100"** />

3)  Configured standalone.conf file for JAVA VM options
OLD: JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
NEW: **JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m** -XX:NewRatio=2 -XX:PermSize=64m -Djava.net.preferIPv4Stack=true"

4)  Configuring infinispan subsystem:
which has a <cache-container> to configure the thread pool execute in the thread subsystems. It governs the allocation and execution of runnable tasks in the replication queue.

5)  Tried running my application on remote system having **64 GB RAM** and the 3rd configuration mentioned above.

6)  Configuring high value for core threads in JCA subsystem
**<core-threads count="50"/>** in subsystem urn:jboss:domain:jca:4.0

所有这些配置都没有帮助我提高吞吐量。

有人可以帮助我理解实际需要修改或配置的内容,以便在通过JMETER测试时提高服务器的吞吐量。

1 个答案:

答案 0 :(得分:1)

有太多可能的原因,我只会列出几个最常见的建议:

  1. 运行JBoss的机器只是过载而无法快速响应,因为平庸的CPU或免费RAM或密集交换等等。确保在测试运行时监视测试资源下的应用程序,它不仅允许您将增加的负载与增加的系统资源利用率相关联,而且还可以判断缓慢的响应时间是否与缺少硬件容量。您可以使用JMeter PerfMon Plugin将监控与JMeter测试集成,查看How to Monitor Your Server Health & Performance During a JMeter Load Test以获取有关插件安装和使用的更多详细信息
  2. JMeter负载生成器可能会受到同样的影响而对吞吐量指标产生相同的影响:如果JMeter无法足够快地发送请求,则测试中的应用程序将无法更快地响应,因此在某些情况下JMeter本身就是瓶颈因此请确保您关注JMeter Best Practices并且JMeter有足够的空间来从硬件资源角度进行操作。将相同的监视应用于JMeter负载生成器,并在任何度量超过90%阈值时监视CPU,RAM,网络,磁盘使用情况 - 这是使用单个JMeter实例可以实现的最大负载。
  3. 重新运行您的负载测试,但这次有一个分析器工具遥测(例如JProfilerYourKit),这将允许查看最耗费资源和时间的方法,以便您可以识别哪个部分代码需要优化。