Posts

From Healthy GC to OutOfMemoryError: What Really Goes Wrong Inside the JVM

Image
Azure SQL Monitoring Made Easy A Practical Walkthrough of OutOfMemoryError In this blog, I intentionally break the JVM by creating an OutOfMemoryError and then analyze what actually goes wrong using GC logs and memory behavior. This blog continues the discussion from my earlier post on JVM memory and Garbage Collection fundamentals where the foundational concepts required for this analysis are explained. Table of Contents How I Crashed JVM From Object Allocation to OutOfMemoryError Understanding OutOfMemoryError Through GC Log Analysis and Graphs Effect of OutOfMemoryError on Throughput – A Key Performance Indicator OutOfMemoryError Is a Symptom, Not the Root Cause Causes and Recommendations for Memory-Inefficient Code Conclusion How I Crashed JVM Crashing the JVM ty...

Demystifying Java Garbage Collection: Logs, KPIs, and Memory Behavior

Image
Azure SQL Monitoring Made Easy GC Analysis Made Simple: Understanding JVM Memory, KPIs & Log Analysis In this blog, I’ll walk you through how I personally analyze and optimize Java Garbage Collection using easy-to-understand examples and real-world insights. Table of Contents What is Garbage Collection (GC) JVM Memory Structure Why JVM Uses Multiple Generations Enabling GC Logs GC KPIs (Latency & Throughput) GC Graph Analysis & Takeaways What is Garbage Collection (GC) To understand Garbage Collection, we first need to understand what garbage actually means. In simple terms, garbage refers to objects that are no longer useful or are no longer needed by the application. Garbage Collection (GC) in Java is the process of automatically identifying and removing these unused objects fr...

Azure SQL Monitoring Made Easy: Utilization, Long Queries & Performance (High Level Overview)

Image
Azure SQL Monitoring Made Easy Azure SQL Monitoring Made Easy: Utilization, Long Queries & Performance (High Level Overview) In this blog, I’ll walk you through how I personally analyze Azure SQL Database and the key metrics that matter when diagnosing performance issues or preparing high-level utilization reports. This guide is simple, practical, and works whether your apps run on Azure VMs, App Services, or Kubernetes. 1. Checking Azure SQL Utilization The first thing I check is Azure SQL’s resource consumption. These metrics help identify whether the database is under stress due to CPU, storage, or IO pressure. Navigate to Azure Portal → SQL Database → Monitoring → Compute Utilization → Add Metric 1.1 CPU % Where: Add metric → CPU percentage CPU% shows how much compute your workload consumes CPU % i...