사전예약 서버 프로파일링으로 서버 병목 찾아 개선하기
·2021.02.28 09:00
핵심 내용
쿠키런:킹덤 사전예약 서비스의 이미지 생성 병목을 해결하기 위해 Artillery와 Linux perf를 활용해 서버를 프로파일링했다.
1 / 2
자세히 보기
쿠키런:킹덤 사전예약의 시민권 발급 이벤트는 수조 개의 조합이 가능한 쿠키 이미지를 실시간으로 생성하여 제공하는 서비스였다. 하지만 이미지 생성 과정에서 막대한 리소스가 소모되는 문제가 발생했다.
Artillery를 이용한 부하 테스트 결과, 2코어 CPU와 512MB 메모리를 가진 노드 9개로도 초당 10 RPS를 처리하기 어려울 만큼 성능이 저조했다. 요청당 처리 시간은 약 1,400~1,600ms에 달했다.
병목 지점을 찾기 위해 Chrome Inspector로 프로파일링을 진행했으나, node-canvas 라이브러리가 사용하는 Cairo 백엔드와 같은 로우레벨 C 코드 영역의 상세 분석에는 한계가 있었다.
이를 해결하고자 Docker 컨테이너 환경에서 Linux perf를 사용하여 더 깊은 단계의 프로파일링을 시도하며 C 레벨의 병목 구간을 추적했다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.