'java.lang.System.getProperty()' is a common API used by Java developers to read the System properties that are configured during application startup time. i.e. when you pass "-DappName=buggyApp" as your application's startup JVM argument, the value of the 'appName' system property can be read by invoking the 'java.lang.System.getProperty()'. Example: public static String getAppName() { String app =... Continue Reading →
Chaos Engineering – Simulating OutOfMemoryError
In the series of chaos engineering articles, we have been learning to simulate various performance problems. In this post, let's discuss how to simulate 'java.lang.OutOfMemoryError: Java Heap space' problem. This 'java.lang.OutOfMemoryError: Java Heap space' will be thrown by the application when the application generates more objects than the allocated heap size. Java OutOfMemoryError Program Here... Continue Reading →
Chaos Engineering – Simulating CPU spike
In this series of chaos engineering articles, let's discuss how to simulate CPU consumption to spike up to 100% on a host (or container). CPU consumption will spike up whenever a thread goes on an infinite loop. Here is a sample program from the open-source BuggyApp application, which would cause the CPU to spike up.... Continue Reading →
Load Average – indicator for CPU demand only?
'Load Average' is an age-old metric reported in various operating systems. It's often assumed as a metric to indicate the CPU demand only. However, it is not the case. 'Load Average' not only indicates CPU demand, but also the I/O demand (i.e., network read/write, file read/write, disk read/write). To prove this theory, we conducted this... Continue Reading →
Buggy App – Simulate performance problems
Buggy App is a simple java application that simulates different performance problems like Memory Leak, OutOfMemoryError, CPU spike, thread leak, StackOverflowError, deadlock, unresponsiveness, ... Using this application, you can simulate various performance problems in your environment. Here are a few use cases where Buggy App can be used: a. You can configure and launch Buggy... Continue Reading →