首页 > 解决方案 > Web 服务器性能下降

问题描述

Web 应用程序在 Springboot 上运行并部署在 WebLogic 上。我们将 400 指定为最大线程,并将 JDBC 指定为 100 个连接。

当我们对 Web 应用进行负载测试时,在负载较低的情况下性能最佳(我们调用的大多数 http 请求的响应时间都小于 200 毫秒)。

当我们增加负载时,我们可以看到线程数增加,jdbc 数也逐渐增加,但没有接近最大值。但是,响应时间越来越长,响应时间可能超过 5 秒。

在这段时间内,CPU 使用率、线程数、内存、JDBC 连接似乎都正常。

另一个观察是,在测试过程中,我们看到性能下降,我们使用另一台机器对服务器进行 http 调用,该服务器仅检索文本,没有任何 DB 或逻辑,即使是这个简单的 http 调用也需要 10 秒才能响应。(而且服务器资源还不是MAX!)

所以,我们想知道是什么让他们等待?还有其他可能的瓶颈吗?

标签: spring-bootperformanceserverjmeterweblogic

解决方案


如果服务器不缺少 CPU/RAM/等资源。只有分析器可以告诉您应用程序花费最多时间的位置可能在:

  1. 在队列中等待池中的下一个线程/数据库连接可用
  2. 数据库查询慢
  3. 需要优化的低效函数/算法
  4. WebLogic 配置不适合高负载
  5. JVM 配置不适合高负载(即系统经常/太长时间进行垃圾收集)

因此,我建议在启用探查器工具遥测的情况下重新运行您的测试,同时使用JMXMon Sample Collector监控基本的 JVM 指标,它也可用于监控您的应用程序特定指标。这是一个可以使用JMeter Plugins Manager安装的插件


推荐阅读