我想测试我的Java应用程序在仅带512M RAM的Tomcat服务器上的表现。换句话说,我需要进行内存负载测试,以检查我的应用程序是否可以在这种受限环境中运行。
使用哪些工具以及如何实现?
我听说过APM软件,包括Stackify Prefix,New Relic APM,JMeter,JVisualVM,JVM Monitor,JBenchX-但我不确定出于我的特定目的需要继续使用其中的任何软件。
具有非常有限的CPU资源的相同问题。我想先在台式机上测试我的应用程序,然后再部署到内存/ CPU有限的Jelastic云中。
答案 0 :(得分:1)
您可以通过修改-Xmx
command-line argument来人为地限制分配给tomcat的JVM堆,该定义了Tomcat服务器将使用的最大堆空间。
如果唯一要测试的是低堆大小,那就足够了。
您还可以修改CPU affinity,以将Tomcat服务器绑定到单个CPU内核(或有限数量的内核)
如果您想更进一步,可以使用VirtualBox创建虚拟机,并复制部署后将拥有的所有预期的硬件/软件。
关于测试,我建议以下performance testing techniques:
答案 1 :(得分:0)
执行此操作的最佳方法是使用虚拟机。您可以选择自己选择的技术,但是一个简单的选择就是使用Oracle VirtualBox,它可以在许多平台上免费使用。只需在VM内安装一个最小的操作系统,然后添加Java,您的应用程序等,然后对其进行负载测试即可。
网络正常运行,因此您可以使用现有的负载测试框架,只需将其指向虚拟机的IP地址即可。
还有其他更理想的方法,例如使用Docker或其他工具,但这可以完成烟雾测试的工作。
我不建议尝试使用具有大量RAM的服务器,然后尝试在不使用虚拟机之类的情况下“合成”低RAM情况(并且BTW Docker在内部使用VM)。