[AIAB-02] Explore the results

Let's now take a look at the results and benefits Akamas achieved in this real-life optimization.

Notice: in your environment, you might achieve different results with respect to what is described in this guide. The actual best configuration might depend on your actual setup - operating systems, cloud or virtualization platform, and the hardware

Application throughput increased by 30%

By optimally configuring the application configurations (JVM options), Akamas increased the application throughput by 30%:

The automatic optimization took 15 hours

Properly tuning a modern JVM is a complex challenge, and might require weeks of time and effort even for performance experts.

Akamas was able to find the optimal JVM configuration after a bit more than half a day of automatic tuning:

How did Akamas achieve that? A look at the best configurations

In the Summary tab you can quickly see the optimal JVM configuration Akamas found:

As you can see, without being told anything about how the application works, Akamas learned the best settings for some interesting JVM parameters:

  • it almost tripled the JVM max heap size

  • it changed the garbage collector from G1 (the default) to Parallel, and it adjusted the number of GC threads

  • it significantly changed the sizing of the Survivor spaces and the new generation

Those are not easy settings to tune manually!

Besides increasing throughput, Akamas also made the application run 23% faster

Another very interesting side benefit is that the optimized configuration not only improved application throughput, but also made Konakart run 23% with respect to the baseline (Configuration Analysis tab):

Also notice how the 3rd best configuration actually improved response time even more (26%).

The best configuration significantly increased application scalability and resiliency

The significant effects the optimal configuration had on application scalability can be also analyzed by looking at the over-time metrics (Metrics tab).

As you can see, the best configuration highly increased the application scalability and the ability to sustain peak traffic volumes with very low response times. Also notice how Akamas automatically detected the peak throughput achieved by the different configurations while keeping the response time under 100 ms, as per the goal constraints.

The best configuration made the application run more efficiently on the CPU (hence less costly on the cloud)

As a final but important benefit, the best configuration Akamas identified is also more efficient CPU-wise. As you can see by looking at the jvm.jvm_cpu_used metric, at peak load the CPU consumption of the optimized JVM was more than 20% less than the baseline configuration. This can translate to direct cost savings on the cloud, as it allows using a smaller instance size or container.

Congratulations, you have just done your first Akamas optimization of a real-life Java application in a performance testing environment with JMeter and Prometheus!

Last updated