Engineers analyze Garbage Collection logs primarily to troubleshoot memory related problems and tune their GC settings. However, several innovative customers of GCeasy like Apple, Dell, Cisco, T-mobile, Zendesk…. are using Garbage collection log analysis for the following purposes as well:
1. Lower AWS bills
Most applications saturate memory first before saturating other resources (CPU, network bandwidth, storage). Most applications upgrade their EC2 instance size to get additional memory rather to get additional CPU or network bandwidth. With right memory size settings and GC parameters, you can run on basic EC2 instances itself effectively. If you can run on basic EC2 instances, then your IT spend can be drastically cut-down. Analyzing GC Logs will help you to come up with right memory settings and GC parameters.
2. Catch hard performance defects in test
Despite thorough stress testing in the test environment, still, performance problems find their way to production. It’s because a lot of enterprises measures only macro metrics i.e. CPU utilization, memory utilization, and response time. Macro metrics don’t give visibility on the acute degradation. These acute degradations are the ones which manifest into major performance problems in production. If proper micro metrics are measured in the test environment, several performance problems can be caught in the testing phase itself. You can gather all the micro metrics related to GC logs from GCeasy.io and all thread related micro metrics from fastThread.io.
3. Prevent Production catastrophe
Industry has seen several Application Performance Monitoring (APM) tools. These tools are great in detecting performance issues in production, but they don’t prevent them. i.e. once CPU tips over certain percentage, APM raises alert. Once throughput drops overs a percentage, APM raises an alert. Once application becomes unresponsive or hung, APM raises alerts. They don’t prevent the problem. If GC logs are observed are closely, you can forecast memory related problems that application is going experience in near future. If thread dumps are observed closely you can forecast CPU and unresponsive nature of the application. For these predicting purposes you can use free GC Log analysis API and thread dump analysis API.
4. Catch performance defects during code commit
Catching defects during the development phase is much cheaper than catching them during the testing phase. As part of the Continuous Integration (CI) process, several enterprises are running stress tests. GC logs generated during those tests are programmatically analyzed through the GC Log analysis API. If thresholds like Object creation rate, full GC count, GC interval time are breached, then the build can be automatically failed. It’s a very powerful way to catch performance problems during code commit period itself.