연결 풀 고갈 원인을 프로파일링 도구로 추적한 경험
인턴 중 서비스 응답이 특정 시간대에 느려지는 문제를 분석하면서 서버 리소스 프로파일링을 처음 제대로 해봤습니다. top이나 vmstat 같은 기본 도구로 CPU·메모리·I/O 사용 패턴을 시간축으로 기록하는 방식으로 전환했는데, 병목이 CPU 바운드인지 I/O 바운드인지를 먼저 구분하는 게 해결 방향을 정하는 데 중요했습니다. 애플리케이션 레벨에서는 py-spy로 Python 프로세스의 핫 경로를 시각화했더니 함수 호출 스택에서 예상 외 위치가 시간을 잡아먹고 있었습니다. 배치 작업이 실행될 때 DB 연결 풀이 고갈되는 패턴이 원인이었는데, 프로파일링 데이터가 없었다면 추측으로만 접근했을 겁니다. 이 경험에서 성능 문제는 계측 데이터를 먼저 쌓고 좁혀가는 순서가 훨씬 효율적이라는 걸 배웠습니다.