Deploying on OCP 4.13 With OpenJ9 CRIU Support

The Deploying on Kubernetes and OpenShift with OpenJ9 CRIU Support blog post (which is now out of date) showed how to deploy on OpenShift Container Platform (OCP) using OpenJ9 CRIU Support. Since that time however, OCP has released Version 4.13 which uses Red Hat CoreOS (RHCOS) 4.13, which is based on RHEL 9. This means…

Optimizing OpenJ9’s Balanced GC Policy for Throughput with Dynamic Breadth First (DBF) Scan Ordering

Optimizing application throughput continues to be a primary goal for any application developer seeking improved application performance. Before I can talk about the details of DBF scan ordering, there are some terms and concepts that must be discussed first. To understand DBF scan ordering, a base knowledge of Garbage Collection (GC), OpenJ9 GC policies, and…

Deploying on Kubernetes and OpenShift with OpenJ9 CRIU Support

Note: This post is out of date; see Deploying on OCP 4.13 With OpenJ9 CRIU Support for the most up-to-date instructions. The previous blog post showed how to restore an application that checkpointed itself using OpenJ9 CRIU Support in an unprivileged container. This blog post will go over how deploy these containers in Kubernetes (K8s)…

Unprivileged OpenJ9 CRIU Support

Overview The previous blog introduced using OpenJ9 CRIU Support. However, the application had to be run with elevated privileges. This blog outlines how to use OpenJ9 CRIU Support with minimal privileges. We have tested running a UBI8 container on RHEL 8.6 and a Ubuntu 22.04 container on Ubuntu 22.04 with the latest kernel updates (this…

Fast JVM startup with OpenJ9 CRIU Support

In recent times, businesses have placed an emphasis on modernizing their software stack into cloud-based services. This transformation has generally meant breaking up big complex long running modules into much smaller short-lived units. These units are often packaged as containers and can be individually provisioned in worker nodes and scaled to meet demands. The days…