Search

GC easy – Universal Java GC Log Analyser

Tag

GC logs

Java CMS GC Tuning

The Java Concurrent Mark & Sweep (CMS) garbage collection algorithm aims to minimize pause times by marking and sweeping memory concurrently. Despite its benefits, CMS has been deprecated since JDK 9 and removed in JDK 14. This post discusses tuning techniques, JVM parameters, and advanced options to optimize CMS performance for specific scenarios.

Serial GC Tuning

The Serial Garbage Collector (GC) is single-threaded, ideal for smaller applications and resource-limited environments. This post discusses tuning techniques for Serial GC, covering parameters like heap size, pause time, and tenuring threshold. Analyzing GC logs helps optimize performance. Overall, developers can configure Serial GC for efficient application management.

Shenandoah GC Tuning

Shenandoah GC enhances Java application's performance by concurrently managing garbage collection with application threads, aiming for low pause times. This is accomplished through region-based memory management and various tuning parameters. Ideal for low-latency, large heap, and highly concurrent applications, Shenandoah offers modes and heuristics for optimizing performance. Analyzing GC logs aids fine-tuning.

GraalVM vs OpenJDK GC Performance Comparison

This article compares the Garbage Collection (GC) performance of OpenJDK and GraalVM. GraalVM's concurrent, generational collector outperforms OpenJDK by exhibiting higher throughput (99.947%) and lower average pause times (450 ms vs. 2.5 secs). It concludes that GraalVM's GC mechanism is more efficient in managing memory, benefiting application performance.

Problems With Finalizer

The finalize method in Java, deprecated since Java 9, poses performance concerns by delaying garbage collection and increasing memory usage. Two-step cycles for objects with finalizers, like FinalizeableBigObject, slow down processes and can lead to OutOfMemoryErrors. Ultimately, efficient resource management should prioritize try-with-resources over finalizers to improve performance.

How Uber saved 70,000 CPU cores with GC tuning

Uber enhanced compute capacity efficiency by implementing Go GC tuning, saving 70K cores across 30 services. They used a self-referencing finalizer to reduce CPU overhead, achieving significant CPU utilization improvements, notably 65% in observability and 30% in Uber Eats. GC tuning is vital for memory management and optimizing application performance.

How to achieve high GC Throughput

Garbage Collection (GC) Throughput is important for Java applications. It shows how efficiently an application uses system resources. High GC throughput means fewer interruptions and better performance. Low throughput can lead to longer pauses and higher computing costs. Factors affecting GC throughput include performance issues, incorrect GC settings, and resource shortages. Addressing these factors helps optimize GC throughput and improve application performance.

Oracle Architect uses improves App performance

Prabhakar Jonnalagadda, a performance architect at Oracle, tackled an application's frequent crashes and poor performance by analyzing its GC log with GCeasy and optimizing JVM arguments. He emphasizes that tuning options are case-specific and encourages engineers to explore and adapt solutions, as there is no universal fix for performance issues.

This Is Garbage Talk. Don’t Attend! – ADDO Conference 2022

The ADDO conference, a major online DevOps community, featured architect Ram Lakshmanan in 2022 discussing wasteful enterprise spending on garbage collection. He emphasized that millions are squandered, yet optimization can improve customer experience and save costs. His talk urges a reevaluation of current garbage collection practices to enhance efficiency.

Up ↑