Buggy App –模拟性能问题

发布于:2021-01-29 15:04:18

0

83

0

Buggy App 模拟性能 java

使用简单的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