java - 如何测试我的 Java 应用程序是否可以成功处理 Tomcat 服务器上的低内存/CPU 资源?

标签 java tomcat load-testing apm

我想测试我的 Java 应用程序在只有 512M RAM 的 Tomcat 服务器上的表现。换句话说,我需要进行内存负载测试,以检查我的应用程序是否可以在这种受限环境中运行。

使用哪些工具以及如何实现这一目标?

我听说过 APM 软件,包括 Stackify Prefix、New Relic APM、JMeter、JVisualVM、JVM Monitor、JBenchX - 但我不确定我是否需要为我的特定目的继续使用它们中的任何一个。

同样的问题是 CPU 资源非常有限。在部署到内存/CPU 有限的 Jelastic 云之前,我想在我的桌面 PC 上测试我的应用程序。

最佳答案

可以通过修改-Xmx command-line argument人为限制分配给tomcat的JVM堆它定义了 Tomcat 服务器将使用的最大堆空间。

如果小堆大小是您唯一想要测试的东西——这就足够了。

您还可以修改 CPU affinity将您的 Tomcat 服务器绑定(bind)到单个 CPU 内核(或有限数量的内核)


如果您想更进一步,您可以使用即 VirtualBox 创建一个虚拟机并复制部署后您将拥有的所有预期硬件/软件。

关于测试,我会推荐以下 performance testing techniques :

  • > Load Testing - 将您的系统置于预期负载下以查看它是否能够处理它
  • > Soak Testing - 与负载测试基本相同,但持续时间较长(即过夜或周末) - 它将允许您识别 memory leaks
  • > Stress Testing - 从负载测试开始并逐渐增加负载,直到响应时间开始超过可接受的阈值或错误开始发生(无论先发生什么) - 它会让您知道您的应用程序/配置的限制和愿景什么以及如何打破<

使用分析器工具,如 YourKitJProfiler微调您的代码也将是有益的。

关于java - 如何测试我的 Java 应用程序是否可以成功处理 Tomcat 服务器上的低内存/CPU 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53545053/

相关文章:

mysql - Visual Studio 2010 负载测试 : MySQL as results repository

c# - 在 Visual Studio WebTest 中删除 Cookie

java - 文件未找到异常 facebook 图

java - 如何在一定时间后停止tomcat处理请求?

eclipse - Tomcat 没有从 Eclipse 部署我的 Web 项目

java - WebSocket 连接到 'ws://*' 失败 : Error during WebSocket handshake: Unexpected response code: 404

java - 编辑 JTextPane 时按钮状态的更改

java - org.springframework.beans.TypeMismatchException : Failed to convert value 'java.lang.String' to 'java.lang.Class' spring

java - 使用 Lambda 添加 MessageHandler NullPointerException

javascript - 如何在 JavaScript 代码中使用 JMeter 变量?