发布于:2021-01-29 15:04:18
0
84
0
使用简单的Java应用程序Buggy App,您可以模拟环境中的各种性能问题。本文将研究一些用例,如何下载应用程序以及可以通过Buggy App模拟哪些常见的性能问题。
Buggy App是一个简单的Java应用程序,它模拟了各种性能问题,例如内存泄漏,OutOfMemoryError,CPU峰值,线程泄漏,StackOverflowError,死锁,无响应等等。
使用此应用程序,您可以模拟环境中的各种性能问题。以下是一些可以使用Buggy App的用例:
您可以配置并启动Buggy App,以在运行应用程序的同一台服务器上消耗大量内存。您可以在这种情况下研究您的应用程序的SLA(服务水平协议)是否受到影响。
您可以在Docker容器中配置并启动Buggy App,以消耗大量CPU,并查看同一主机上的其他容器是否受到影响。
如果要构建性能工具或监视工具,则可以使用Buggy App模拟各种性能下降,并查看您的工具是否解决了这些性能问题。(实际上,我们开发了这个BuggyApp来验证我们的根本原因分析工具yCrash行为。)
下载
您可以下载Buggy App;要运行Buggy App,您需要安装Java 8或更高版本。
性能问题
以下是您可以通过Buggy App模拟的性能问题:
1. OutOfMemoryError:Java堆空间
要生成“ java.lang.OutOfMemoryError:Java堆空间”,请使用以下参数启动Buggy App:
java -Xmx512m -jar buggyApp.jar PROBLEM_OOM
2.内存泄漏
如果您想模拟内存泄漏而不会遇到OutOfMemoryError,请使用以下参数启动Buggy App。
java -jar buggyApp.jar PROBLEM_MEMORY
当使用这些参数启动Buggy App时,将消耗80%-90%的已分配内存。但这不会导致OutOfMemoryError。
3. CPU峰值
如果您希望CPU使用率提高到80 – 90%,请使用以下参数启动Buggy App:
java -jar buggyApp.jar PROBLEM_CPU
4.线程泄漏
如果您希望应用程序继续缓慢生成新线程,请使用以下参数启动Buggy App。
java -jar buggyApp.jar PROBLEM_THREADLEAK
当您使用这些参数启动Buggy App时,最终将生成“ java.lang.OutOfMemoryError:无法创建新的本机线程”。
5.死锁
如果您希望应用程序遇到死锁,请使用以下参数启动Buggy应用程序。
java -jar buggyApp.jar PROBLEM_DEADLOCK
6. Stackoverflow错误
如果您希望应用程序遇到“ java.lang.StackOverflowError”,请使用以下参数启动Buggy应用程序。
java -jar buggyApp.jar PROBLEM_STACKOVERFLOW
7.线程阻塞
如果您想将多个线程置于BLOCKED状态,请使用以下参数启动Buggy App。
java -jar buggyApp.jar PROBLEM_BLOCKED
作者介绍