Advertisement
Interview Question
Your Java services show p99 latency spikes during peak traffic. How would you analyze and tune JVM garbage collection to reduce pause times?
Key Points to Cover
- Collect GC logs and enable detailed GC metrics
- Choose appropriate collector (G1/ZGC/Shenandoah) based on latency goals
- Tune heap sizing, region sizes, and pause-time goals
- Profile allocation hotspots; reduce object churn and large arrays
- Validate improvements via load tests and compare p95/p99
Evaluation Rubric
Captures GC evidence and metrics30% weight
Selects suitable GC for workload30% weight
Applies targeted GC/heap tuning20% weight
Verifies latency improvement under load20% weight
Hints
- 💡Look for allocation rate, promotion failures, humongous objects.
Common Pitfalls to Avoid
- ⚠️Failing to collect sufficient and relevant GC logs, making analysis impossible.
- ⚠️Blindly applying GC tuning parameters without understanding the underlying JVM behavior.
- ⚠️Choosing a GC collector without a clear understanding of the application's latency requirements.
- ⚠️Over-tuning heap sizes or region sizes without proper profiling, leading to new performance bottlenecks.
- ⚠️Neglecting to profile the application itself for excessive object creation or memory leaks, which can negate GC tuning efforts.
Potential Follow-up Questions
- ❓When would you prefer ZGC over G1?
- ❓How do container limits affect GC?
Advertisement
Related Questions
Questions that share similar topics with this one
HTTP Keep-Alive & Connection Pooling
Intermediate📞 Phone Screen•2 min•Phone
HTTP/1.1 vs HTTP/2
Intermediate📞 Phone Screen•2 min•Phone
CPU Load Average Explained
Intermediate📞 Phone Screen•2 min•Phone
Purpose of a CDN
Beginner📞 Phone Screen•2 min•Phone
API Rate Limiting Basics
Intermediate📞 Phone Screen•2 min•Phone