트래픽이 많은 서비스를 운영하다 보면, 다음과 같은 상황을 한 번쯤은 겪게 됩니다.CPU 사용률은 높지 않고메모리도 여유 있어 보이는데요청 응답이 점점 느려지거나 타임아웃이 발생한다이 상황에서 가장 흔한 반응은 이것입니다.“리소스는 남아 있는데, 왜 느리지?”이 글에서는 이 현상을 리소스 부족 문제가 아니라 Thread Pool이라는 동시성 한계 관점에서 설명합니다.CPU 여유 ≠ 처리 여유CPU 사용률이 낮다는 것은,“지금 실행 중인 스레드가 CPU를 다 쓰지 않고 있다”는 의미일 뿐입니다.하지만 요청을 처리하기 위해서는, CPU 이전에 반드시 필요한 자원이 있습니다.바로 실행 가능한 Thread입니다.Thread Pool이 가득 차 있으면, CPU가 아무리 남아 있어도 새로운 요청은 실행되지 못하고 ..