The Semeru Runtime Open Edition 18.0.1 was released on April 25, 2022 bringing Java 18 features running on the Eclipse OpenJ9 JVM . This release is the first Java 18 release for Semeru Runtimes. Although we hadn't intended to skip the GA release, we made the decision to skip it so we could...
Caching is the process of saving the result of a calculation and potentially re-using it in the future to reduce response times, increase throughput, and reduce load on servers. Caching is a critical and often under-tuned aspect of performance. In this article, we'll cover how to understand Java...
Over the years, we have heard from users of the WebSphere Application Migration Toolkit for Application Binaries (aka binary scanner) that they have added the binary scanner to their build pipeline. This allows their application to be evaluated using the binary scanner with each build of the...
While running a java application, users often encounter memory leak issue. This could be due to Java heap memory leak or native OOM (Out Of Memory) or due to various other reasons. In this blog, we focus on what memory leaks are, what causes those, well known troubleshooting mechanisms for Java...
Number of Liberty JVMs affect throughput and memory footprint Introduction There are many factors that can cause performance issues in an application server environment. Changes to application code, an increase in the client load, and other environmental factors can put a strain on...
As discussed in a past blog post , if you're experiencing performance problems, the first thing to check is whether your garbage collection (GC) is healthy. If the proportion of time in garbage collection is greater than ~10%, then garbage collection is likely unhealthy and the application is...
Java Garbage Collection (GC) fundamentals As discussed in my prior post about how important GC is to Java performance, typical running Java programs create and release Java objects more-or-less continuously. The automated memory management system for dealing with these object...
In our previous blog post , we discussed the value of running the Linux perf native CPU sampling profiler to investigate Java CPU usage in production. However, perf generally requires root access and OpenShift application containers generally don't run with such privileged access. This...
In previous blog posts we explored optimizations for running Liberty in containers. Part 1 covered optimizations for the JVM and Part 2 covered Liberty containers basics. In this post, we will cover deployment options and performance optimizations for Liberty containers in Kubernetes...
In the previous " Lessons from the field " post we covered performance optimizations for Java running in containers. Joe McClure added some additional Liberty container performance optimizations in his blog post here . In this post, we will cover some more general tips on using Liberty in...