Files
awesome-kubernetes/v2-docs/java-and-java-performance-optimization.md

26 KiB
Raw Blame History

Java and Memory Management

!!! info "Architectural Context" Detailed reference for Java and Memory Management in the context of Developer Ecosystem.

Standard Reference

Cloud Native Languages

Java

Caching

Kubernetes Integration

  • piotrminkowski.com: Java Flight Recorder on Kubernetes [EN CONTENT] [ADVANCED LEVEL] [GUIDE] [ENTERPRISE-STABLE] [GUIDE] — Excellent architectural guide demonstrating how to continuously profile Java applications running on Kubernetes with Java Flight Recorder (JFR) and JDK Mission Control. Uses declarative setups for modern container observation.

Memory Management

  • (2014) Cambios importantes en la gestión de memoria de Java 8 de Oracle [ES CONTENT] [GUIDE] [GUIDE] [LEGACY] — Explores the structural transition in Java 8 memory management, highlighting the replacement of PermGen with Metaspace. Critical for understanding modern JVM memory behavior. [SPANISH CONTENT]
  • (2013) PermGen eliminado [ES CONTENT] [GUIDE] [LEGACY] — Deep-dive InfoQ article outlining the removal of the Permanent Generation (PermGen) in favor of Metaspace. Provides precise technical context on tuning flags and garbage collection changes. [SPANISH CONTENT]
  • (2011) How Garbage Collection differs in the three big JVMs [EN CONTENT] [ADVANCED LEVEL] [GUIDE] [LEGACY] — A detailed comparison of Garbage Collection strategies across HotSpot, JRockit, and IBM J9 JVMs. Highly valuable for understanding historical differences in memory compaction and pause times.
  • javarevisited.blogspot.com: How Garbage Collection works in Java? Explained' (2011) [EN CONTENT] [GUIDE] [GUIDE] [LEGACY] — A fundamental guide detailing Java Garbage Collection mechanics, generational hypothesis, and basic GC algorithms. Ideal for building baseline knowledge of JVM memory structures.

Performance Tuning

  • (2014) Free eGuide: JVM Troubleshooting Guide [EN CONTENT] [GUIDE] [GUIDE] [LEGACY] — A legacy JVM troubleshooting guide covering common performance pitfalls, memory issues, and GC analysis patterns. Offers foundational reference value despite its age.
  • tier1app.com [EN CONTENT] [ENTERPRISE-STABLE] — A dedicated APM tool for analyzing Java thread dumps and performance. Provides automated diagnostics for thread contention and deadlocks to optimize JVM application responsiveness.
  • fastthread.io [EN CONTENT] [DE FACTO STANDARD] [ENTERPRISE-STABLE] — Industrial-grade online Java thread dump analyzer that uses AI diagnostics to identify CPU spikes, thread leaks, and deadlock patterns. Essential for post-mortem analysis of containerized JVM workloads.
  • gceasy.io [EN CONTENT] [ADVANCED LEVEL] [DE FACTO STANDARD] [ENTERPRISE-STABLE] — Machine-learning powered JVM Garbage Collection log analyzer. Automates the detection of memory leaks, GC pauses, and heap sizing misconfigurations, offering actionable recommendations for optimization.
  • heaphero.io [EN CONTENT] [ADVANCED LEVEL] [ENTERPRISE-STABLE] — An automated cloud-based JVM heap dump analyzer built to parse large memory dumps quickly. Detects memory leaks and optimizes data structure footprints to resolve OutOfMemoryError crashes.
  • Jillegal OffHeap Module [EN CONTENT] [COMMUNITY-TOOL] [EMERGING] [LEGACY] — An experimental library designed to bypass standard JVM memory allocation by managing objects off-heap. Note: This project is archived and has been inactive for over 4 years; it is recommended for historical study rather than production use.
  • Byteman [EN CONTENT] [ADVANCED LEVEL] [ENTERPRISE-STABLE] — A highly flexible bytecode injection tool that simplifies tracing, monitoring, and chaos testing in Java applications. Uses side-loaded rules to inject diagnostics without rebuilding code.
  • developers.redhat.com: Collect JDK Flight Recorder events at runtime with' JMC Agent 🌟 [EN CONTENT] [ADVANCED LEVEL] [GUIDE] [ENTERPRISE-STABLE] [GUIDE] — Demonstrates using the JDK Mission Control (JMC) Agent to dynamically inject JFR events into running JVMs. Enables real-time production diagnostics with near-zero overhead.
  • developers.redhat.com: Checkpointing Java from outside of Java [EN CONTENT] [GUIDE] [EMERGING] [GUIDE] — Introduces techniques to checkpoint running Java processes from the OS level using CRIU. Essential groundwork for achieving instant-start capabilities in containerized Java serverless workloads.
  • developers.redhat.com: A faster way to access JDK Flight Recorder data [EN CONTENT] [ADVANCED LEVEL] [GUIDE] [ENTERPRISE-STABLE] [GUIDE] — Explores programmatic, low-latency access to JDK Flight Recorder data streams at runtime. Provides architecture blueprints for exporting profiling telemetry directly into external APM platforms.

Infrastructure Integration

Local Development

Networking

  • vladmihalcea.com: How to tunnel localhost to the public Internet [EN CONTENT] [GUIDE] [COMMUNITY-TOOL] [GUIDE] — A practical walkthrough on exposing local servers to the public internet using tools like ngrok. Facilitates rapid debugging of external webhooks and third-party APIs during local microservices development.

Runtime Optimizations

Application Architecture

Caching Strategies

  • vladmihalcea.com: Caching best practices [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Advanced guidelines on data caching layers. Focuses on cache eviction strategies, write-through sync, and invalidation consistency protocols in microservices.

Persistence Layer

JVM Tuning

Garbage Collection

Language Fundamentals

Monitoring and Profiling

Performance Optimization

  • OpenHFT/Java-Thread-Affinity 1895 [EN CONTENT] [ADVANCED LEVEL] [ENTERPRISE-STABLE] — Highly optimized library that binds Java execution threads to specific CPU cores. Mitigates task context-switching overhead in low-latency financial systems.

Kubernetes Tuning

JVM in Containers

Monitoring and Profiling (1)

Observability


💡 Explore Related: Java_Frameworks | API | JVM Parameters Matrix Table