performance - 使用 Jmeter 的 JBOSS wildfly 10 性能调优

标签 performance jakarta-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 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 测试时实际上必须修改或配置什么以增加我的服务器的吞吐量。

最佳答案

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

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

关于performance - 使用 Jmeter 的 JBOSS wildfly 10 性能调优,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45794919/

相关文章:

c++ - a 和 b 之间的数字(无排列)

java - 在 Eclipse 中创建 War 文件以在 JBoss 上运行

java - 将 Stateless (Webservice)Bean 注入(inject)另一个 Bean

eclipse - 创建 jboss-as-helloworld 项目时 eclipse(indigo) 中的 pom.xml 错误

encoding - 如何在 JBoss 7 中正确接收 UTF-8 字符?

c# - 整数与 double 算术性能?

java - 为什么对 Map 的同步访问会增加大量开销

mysql - 找出数据库问题

java - Java EE 中的无状态单例

java - 更新不需要或不需要 em.persist() 或 em.merge() 吗?