⚙️application / jvm
Tomcat Thread Pool Starvation
middle⏱ 30 min🏢 Travel booking platform (peak holiday season)
JavaTomcatThread PoolBlocking I/OSpring MVCLoad Testing
Tech Stack
- Java 17
- Spring MVC 6
- Tomcat 10
- PostgreSQL 15
- Redis 7
🚨
Incident Scenario
The booking API handles steady-state load (150 RPS) perfectly — P95 under 120ms. During a flash sale, traffic spikes to 450 RPS. Within 90 seconds, response times jump to 30s and HTTP 503s begin. CPU stays at 35%. Heap is fine. GC is normal. The app is not "crashing" — it just stops responding. What is happening?
🔍 Investigation Artifacts
Reveal artifacts one by one. Each clue brings you closer to the root cause.