發(fā)布于:2021-01-29 15:04:18
0
146
0
使用簡單的Java應(yīng)用程序Buggy App,您可以模擬環(huán)境中的各種性能問題。本文將研究一些用例,如何下載應(yīng)用程序以及可以通過Buggy App模擬哪些常見的性能問題。
Buggy App是一個簡單的Java應(yīng)用程序,它模擬了各種性能問題,例如內(nèi)存泄漏,OutOfMemoryError,CPU峰值,線程泄漏,StackOverflowError,死鎖,無響應(yīng)等等。
使用此應(yīng)用程序,您可以模擬環(huán)境中的各種性能問題。以下是一些可以使用Buggy App的用例:
您可以配置并啟動Buggy App,以在運(yùn)行應(yīng)用程序的同一臺服務(wù)器上消耗大量內(nèi)存。您可以在這種情況下研究您的應(yīng)用程序的SLA(服務(wù)水平協(xié)議)是否受到影響。
您可以在Docker容器中配置并啟動Buggy App,以消耗大量CPU,并查看同一主機(jī)上的其他容器是否受到影響。
如果要構(gòu)建性能工具或監(jiān)視工具,則可以使用Buggy App模擬各種性能下降,并查看您的工具是否解決了這些性能問題。(實(shí)際上,我們開發(fā)了這個BuggyApp來驗(yàn)證我們的根本原因分析工具yCrash行為。)
下載
您可以下載Buggy App;要運(yùn)行Buggy App,您需要安裝Java 8或更高版本。
性能問題
以下是您可以通過Buggy App模擬的性能問題:
1. OutOfMemoryError:Java堆空間
要生成“ java.lang.OutOfMemoryError:Java堆空間”,請使用以下參數(shù)啟動Buggy App:
java -Xmx512m -jar buggyApp.jar PROBLEM_OOM
2.內(nèi)存泄漏
如果您想模擬內(nèi)存泄漏而不會遇到OutOfMemoryError,請使用以下參數(shù)啟動Buggy App。
java -jar buggyApp.jar PROBLEM_MEMORY
當(dāng)使用這些參數(shù)啟動Buggy App時,將消耗80%-90%的已分配內(nèi)存。但這不會導(dǎo)致OutOfMemoryError。
3. CPU峰值
如果您希望CPU使用率提高到80 – 90%,請使用以下參數(shù)啟動Buggy App:
java -jar buggyApp.jar PROBLEM_CPU
4.線程泄漏
如果您希望應(yīng)用程序繼續(xù)緩慢生成新線程,請使用以下參數(shù)啟動Buggy App。
java -jar buggyApp.jar PROBLEM_THREADLEAK
當(dāng)您使用這些參數(shù)啟動Buggy App時,最終將生成“ java.lang.OutOfMemoryError:無法創(chuàng)建新的本機(jī)線程”。
5.死鎖
如果您希望應(yīng)用程序遇到死鎖,請使用以下參數(shù)啟動Buggy應(yīng)用程序。
java -jar buggyApp.jar PROBLEM_DEADLOCK
6. Stackoverflow錯誤
如果您希望應(yīng)用程序遇到“ java.lang.StackOverflowError”,請使用以下參數(shù)啟動Buggy應(yīng)用程序。
java -jar buggyApp.jar PROBLEM_STACKOVERFLOW
7.線程阻塞
如果您想將多個線程置于BLOCKED狀態(tài),請使用以下參數(shù)啟動Buggy App。
java -jar buggyApp.jar PROBLEM_BLOCKED