배경 어느 날, 아무 문제 없이 동작하던 웹 서비스에서, 페이지가 조회되지 않는다고 한다. 서버는 어떤 에러도 뱉어내지 않았지만 응답이 매우 느린 상황이었다. 시스템 정보를 보니 CPU를 100%가량 사용하고 있었고, Load Average또한 거의 8까지 올라가 있는 상황이다. 문제의 원인을 찾아보자. Step1. CPU를 많이 사용하고 있는 프로세스 찾기 => 톰캣 프로세스에서 CPU를 엄청 사용하고 있었다. Step2. 이 프로세스에서도 CPU를 많이 사용하고 있는 쓰레드 찾기 ps -mo pcpu,lwp -p ${PID} => 4개 쓰레드가 CPU를 엄청 사용하고 있었다. Step3. 그 쓰레드가 어떤 일을 하고 있었는지 덤프하기 jstack ${PID} => 어라..? GC를 하는 쓰레드였다. ..