mirror of
https://github.com/nubenetes/awesome-kubernetes.git
synced 2026-05-27 03:24:53 +00:00
26 KiB
26 KiB
Java and Memory Management
!!! info "Architectural Context" Detailed reference for Java and Memory Management in the context of Developer Ecosystem.
Standard Reference
- geekflare.com: What is Thread Dump and How to Analyze them? 🌟 [COMMUNITY-TOOL]
- On heap vs off heap memory usage [COMMUNITY-TOOL]
- blog.flipkart.tech: The Art of System Debugging — Decoding CPU Utilization' 🌟 [COMMUNITY-TOOL]
- DZone: Performance Improvement in Java Applications: ORM/JPA 🌟 [COMMUNITY-TOOL]
- DZone: The JVM Architecture Explained 🌟 [COMMUNITY-TOOL]
- DZone: How to Troubleshoot Sudden CPU Spikes [COMMUNITY-TOOL]
- DZone refcard: Java Caching [COMMUNITY-TOOL]
- Dzone: 7 JVM Arguments of Highly Effective Applications 🌟🌟🌟 [COMMUNITY-TOOL]
- dzone.com: Flight Recorder: Examining Java and Kotlin Apps [COMMUNITY-TOOL]
- medium: How to reduce your JVM app memory footprint in Docker and Kubernetes' 🌟 [COMMUNITY-TOOL]
- dzone: Best Practices: Java Memory Arguments for Containers 🌟 [COMMUNITY-TOOL]
- medium.com/@anurag2397: Tuning JVM containers for better CPU and memory' utilisation in K8s environment [COMMUNITY-TOOL]
- danoncoding.com: Tricky Kubernetes memory management for Java applications' 🌟 [COMMUNITY-TOOL]
- medium.com/nordnet-tech: Setting Java Heap Size Inside a Docker Container [COMMUNITY-TOOL]
- medium.com/@sharprazor.app: Memory settings for Java process running in' Kubernetes pod [COMMUNITY-TOOL]
- medium.com/codex: Running JVM Applications on Kubernetes: Beyond java' -jar [COMMUNITY-TOOL]
- lalitchaturveditech.medium.com: Optimize Java Performance On Kubernetes [COMMUNITY-TOOL]
- jet-start.sh: Performance of Modern Java on Data-Heavy Workloads, Part 1' 🌟 [COMMUNITY-TOOL]
- dzone.com: Java Inside Docker: What You Must Know to Not FAIL [COMMUNITY-TOOL]
- en.wikipedia.org/wiki/List_of_performance_analysis_tools [COMMUNITY-TOOL]
- InspectIT [COMMUNITY-TOOL]
- VisualVM [COMMUNITY-TOOL]
- OverOps [COMMUNITY-TOOL]
- baeldung.com: How to Analyze Java Thread Dumps 🌟 [COMMUNITY-TOOL]
- baeldung.com: Capturing a Java Thread Dump [COMMUNITY-TOOL]
- DZone: Understanding the Java Memory Model and Garbage Collection 🌟 [COMMUNITY-TOOL]
- DZone: Memory Leaks and Java Code [COMMUNITY-TOOL]
- Hazelcast JET [COMMUNITY-TOOL]
Cloud Native Languages
Java
Caching
- (2025) Tecnologías de Heap-Offloading son EHcache, Memcached, Jillegal library, etc. [ES CONTENT] [ADVANCED LEVEL] [DE FACTO STANDARD] [ENTERPRISE-STABLE] — Robust, standards-compliant Java caching library supporting off-heap storage to bypass JVM Garbage Collection overhead. Crucial for high-throughput microservices requiring low-latency data access. [SPANISH CONTENT]
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
- vladmihalcea.com: 14 High-Performance Java Persistence Tips [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — In-depth checklist to optimize JDBC, Hibernate, and JPA operations. Discusses query batching, dirty checking, dynamic sorting, and connection pool sizing.
JVM Tuning
Garbage Collection
- (2016) jenkins.io - Tuning Jenkins GC For Responsiveness and Stability with Large Instances 🌟 [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Landmark analytical study detailing optimized GC settings for massive scale Jenkins controller instances. Discusses keeping response times low under heavy CI execution queues.
- developers.redhat.com: Shenandoah garbage collection in OpenJDK 16: Concurrent' reference processing [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Deep dive into OpenJDK 16's concurrent reference processing in the Shenandoah Garbage Collector. Discusses structural barrier enhancements that limit GC pauses to sub-milliseconds.
- kstefanj.github.io: GC progress from JDK 8 to JDK 17 [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Empirical performance benchmarks tracking G1GC, ParallelGC, ZGC, and Shenandoah collection efficiency improvements from Java SE 8 through LTS 17.
- developers.redhat.com: How to choose the best Java garbage collector [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Architect guide comparing major modern GCs (G1, ZGC, Shenandoah) against application profiles to balance maximum throughput, latency tolerances, and system memory.
Language Fundamentals
- javarevisited.blogspot.com: 10 Things Java Programmers Should Learn in 2022 [EN CONTENT] [COMMUNITY-TOOL] — Highlights classic competencies for advanced Java engineers, such as concurrency paradigms, GC tuning, microservices, and modern framework shifts.
- freecodecamp.org: Learn the Basics of Java Programming [EN CONTENT] [COMMUNITY-TOOL] — Beginner-centric handbook focusing on OOP concepts, procedural mechanics, and structural paradigms inside the Java virtual machine environment.
- freecodecamp.org: Advanced Object-Oriented Programming in Java – Full Book [EN CONTENT] [COMMUNITY-TOOL] — Detailed technical book-style guide exploring advanced object-oriented paradigms. Focuses on design patterns, polymorphic interfaces, and encapsulation policies.
- linkedin.com/pulse: Difference between Executor, ExecutorService, and Executors' class in Java! [EN CONTENT] [COMMUNITY-TOOL] — Clarifies functional differences in the Java Concurrency Framework interface hierarchy. Highlights thread pooling strategies and execution submission lifecycles.
- freecodecamp.org: How to Write Unit Tests in Java [EN CONTENT] [COMMUNITY-TOOL] — Walkthrough covering JUnit 5 framework testing. Focuses on parameterized tests, Mockito integration, and code coverage reporting in build cycles.
- Running Jenkins on Java 11 🌟 [EN CONTENT] [DOCUMENTATION] [COMMUNITY-TOOL] — Administrative guide addressing the platform transition of the Jenkins controller from obsolete Java 8 engines to modern Java 11 runtime profiles.
Monitoring and Profiling
- developers.redhat.com: Get started with JDK Flight Recorder in OpenJDK 8u' 🌟 [EN CONTENT] [ADVANCED LEVEL] [LEGACY] — Outlines configuring and analyzing OpenJDK 8u runtime events utilizing JDK Flight Recorder (JFR) and Mission Control. Essential for debugging containerized legacy runtimes.
- blog.heaphero.io: HeapHero - Java & Android Heap Dump Analyzer [EN CONTENT] [COMMUNITY-TOOL] — Portal exploring the HeapHero engine. Focuses on indexing memory leaks, analyzing garbage collection impact, and tracking unused objects from heap dumps.
- developers.redhat.com: JDK Flight Recorder support for GraalVM Native Image:' The journey so far 🌟 [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Reviews progress in compiling low-overhead JVM diagnostics natively inside GraalVM images. Analyzes memory footprint tracking constraints and compilation trade-offs.
- speakerdeck.com: Profiling a Java Application @DevDays 2023 | Victor Rentea [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — High-density presentation slide deck dissecting execution profiling tools. Teaches identification of CPU hotspots, thread lock contention, and high garbage creation loops.
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
- (2022) blog.gceasy.io: Best practices: Java memory arguments for Containers 🌟 [EN CONTENT] [COMMUNITY-TOOL] — Deep analysis of standard flags (like -XX:+UseContainerSupport and -XX:MaxRAMPercentage) needed to ensure JVM containers accurately dynamically self-size.
- (2021) blog.openshift.com: Scaling Java Containers 🌟 [EN CONTENT] [COMMUNITY-TOOL] — Explores container resource limit considerations for Java workloads. Details memory calculation adjustments (Heap vs Non-Heap) to prevent OOMKills.
- tech.olx.com: Improving JVM Warm-up on Kubernetes 🌟 [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Operational case study detailing OLX's strategy to remediate high CPU spikes caused by JVM JIT compiling during initial Kubernetes pod scaling actions.
- itnext.io: How to cold start fast a java service on k8s (EKS) [EN CONTENT] [ADVANCED LEVEL] [COMMUNITY-TOOL] — Engineering exploration highlighting techniques to minimize startup latency for Spring Boot/Quarkus container images, leveraging GraalVM, CRaC, or CPU shares.
Monitoring and Profiling (1)
- (2021) blog.openshift.com: Debugging Java Applications On OpenShift and Kubernetes [EN CONTENT] [COMMUNITY-TOOL] — Walkthrough covering remote JVM agent connection attachment procedures targeting pods deployed within secured target Kubernetes namespaces.
Observability
- (2021) blog.openshift.com: Performance Metrics (APM) for Spring Boot Microservices on OpenShift [EN CONTENT] [COMMUNITY-TOOL] — Comprehensive integration guide explaining how to hook up Spring Boot Prometheus metrics directly into automated OpenShift cluster telemetry layers.
💡 Explore Related: Java_Frameworks | API | JVM Parameters Matrix Table