BuggyApp

Simulate performance
problems

BuggyApp can simulate various performance problems like Memory Leak, OutOfMemoryError, CPU spike, thread leak StackOverflowError, deadlock, unresponsiveness and so on

Download the Open source BuggyApp now!

How it works?

Install BuggyApp on any machine in seconds. No major prerequisite is required.

With just a click, You can run BuggyApp as a web application or as a command line application.

Simulate various performance problems such as: Memory Leak, CPU spike, Thread Leak,etc

Features

Web application
BuggyApp comes with an embedded server. In a single click you can launch it as a web application and access it from the browser.
Command line
You can also invoke BuggyApp from the command line. Here are the arguments to simulate performance problems from command line.
Open Source
BuggyApp is an open source application that is distributed under Apache license 2.0


ON/OFF
You have full control in starting the performance problem simulation with one click and stopping with another click.

Platform agnostics
BuggyApp is platform agnostic. It can run on all platforms - Bare Metal, Dockers/Kubernetes, AWS cloud, Azure cloud, GCP, ...
Any Operating System
BuggyApp is built on Java, thus it can run on any Operating system versions: Windows, all flavours of Linux, Unix, Mac
Monitoring Integration
It's very trivial to integrate BuggyApp with any monitoring tools like yCrash, AppDynamics, NewRelic, Nagios, Dynatrace, DataDog...
Throttle
You can control the simulations at the rate you want. You can accelerate (or de-accelerate) the memory consumption and simulate OutOfMemoryError much quickly.

How to run BuggyApp?

01
Install

Make sure Java 8 or above version is installed on your machine

02
Download and Unzip

Download buggyapp-latest.zip file and Unzip the same to a folder say (i.e. /opt/buggyapp).

03
Invoke Launch script

In the folder where you unzipped (i.e. /opt/buggyapp), you will find launch script. Based on your OS, invoke appropriate launch script.
Windows: c:\workspace\buggyapp\launch.bat
Unix: /opt/workspace/buggyapp/launch.sh

04
Ready to Access

Now BuggyApp can be accessed in this URL(http://localhost:9010/) from your browser.

Performance problems

Java heap space
Generate ‘java.lang.OutOfMemoryError: Java heap space’!
Memory Leak
Simulate a memory leak without experiencing OutOfMemoryError
CPU spike
Make the CPU consumption to go up to 80 – 90%

Thread Leak
Make the application to keep slowly spawning new threads

Deadlock
Make the application to experience Deadlock


Stackoverflow Error
Make the application to experience ‘java.lang.StackOverflowError’
Blocked Threads
Put multiple threads in BLOCKED state


Heavy I/O
Simulate heavy I/O activity



Frequently asked questions

You just need Java 8 and above version

Yes, you can run BuggyApp in multiple machines. But you can't do coordinated attack.

Yes, BuggyApp is an open source code. You are welcome to integrate it within your application. But we aren't providing APIs for integration, you have to do it by yourself.

Here are a few use cases where BuggyApp can be used:

a. You can configure and launch BuggyApp to consume high memory on the same server where your application is running. You can study under this circumstance whether your application’s SLA (Service Level Agreement) is impacted.

b. You can configure and launch BuggyApp in a docker container to consume high CPU and see whether other containers on the same host are impacted or not.

c. If you are building performance tools or monitoring tools, you can simulate various performance degradations using Buggy App and see whether your tools address those performance problems. (In Fact we developed this BuggyApp to validate our root cause analysis tool yCrash)

Want to try the Opensource BuggyApp?