Announcement

This page is also available in Deutsch, Español, Français, Italiano, 日本語, and Português.

Filter workloads by JVM runtime

Find every Java workload in a cluster in one click, no labels required

By Vadim Solovey

·

Shipped by

Oleksii KoshkinAbror Kenjaev

Java memory does not behave like other memory. A fixed -Xmx heap will not shrink just because the container limit did, so right-sizing a Java service the same way you right-size a stateless API is how you end up with an OOMKill. Most teams know this and want to handle their JVM workloads with extra care. The problem is finding them. Almost nobody labels pods with "this one runs a JVM", so answering "show me just the Java workloads in this cluster" meant grepping manifests or asking around.

That gap is closed. The PerfectScale workloads table now has a Runtime column with a filter: All, JVM, Non-JVM.

What you get

PerfectScale detects Java containers automatically through its node agent, so the filter works off detection, not labeling discipline. A workload counts as JVM if any of its containers runs one. The Runtime column appears on every tab of the workloads table (Recommendations, Labels and Policies, HPA, GPU) whenever Java containers are detected in the selected cluster and timeframe, and the CSV export includes it.

What that gets you in practice:

A JVM inventory in one click. Filter to JVM, export the CSV, and hand your Java platform team a complete list of Java services with their current requests, limits, and recommendations. No tribal knowledge required.

A safer path to automated right-sizing. Filter to Non-JVM and turn on automation for everything that is not Java first. Then take the JVM list and review heap settings against container limits before letting automation touch them. The workloads with a fixed -Xmx close to the memory limit are the ones worth a look.

Faster triage of Java memory issues. The filter pairs with what PerfectScale already does for Java: heap, non-heap, and garbage collector metrics per container, and recommendations that respect explicitly configured heap parameters instead of cutting limits below MaxHeapSize.

Get started

  1. Enable JVM detection if you have not already. It is one helm flag on the PerfectScale agent, described in the Java containers guide. Detection runs on Linux nodes.
  2. Open the workloads table for a cluster. When Java containers are detected, the Runtime column shows up with its filter.
  3. Pick JVM or Non-JVM, or export the CSV for the full inventory.

The Runtime filter is live for all customers today. If you run a lot of Java and this changes how you review recommendations, or if it does not, we want to hear it.