【问题标题】:JBOSS wildfly 10 Performance Tuning using Jmeter使用 Jmeter 进行 JBOSS wildfly 10 性能调优
【发布时间】:2018-01-29 09:34:55
【问题描述】:

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

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

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

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

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

我还在 standalone.xml 文件中为不同子系统对 JBOSS wildfly server 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 进行测试时,任何人都可以帮助我了解实际必须修改或配置哪些内容以增加我的服务器的吞吐量。

【问题讨论】:

  • 如果你设置 Ramp-up time = 0 它将同时发送所有请求
  • 您好 user7294900,我尝试使用 Ramp-upTime =0,但吞吐量降低到每秒 5-6 次命中。请查找摘要报告:
  • http_get 1000 131487 79913 175402 30378.20134796648 0.0 5.637518815219045 213.95044550492437
  • 上面注释中的粗体是吞吐量,1000是同时运行的样本。

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


【解决方案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 有足够的空间来从硬件资源的角度进行操作。当任何指标超过 90% 阈值时,对 JMeter 负载生成器应用相同的监控并密切关注 CPU、RAM、网络、磁盘使用情况 - 这是您可以使用单个 JMeter 实例实现的最大负载。
  3. 重新运行负载测试,但这次使用分析器工具遥测(例如 JProfilerYourKit),这将允许查看最耗费资源和时间的方法,以便您确定哪些部分的代码需要优化。

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 2018-02-07
    • 2010-12-20
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多