Redis CPU 프로파일링

Redis CPU 프로파일링 (Redis CPU profiling)

이 문서는 Redis의 on-CPU 성능 엔지니어링 가이드로, 성능 회귀 조사나 효율 개선이 필요할 때 체계적으로 CPU 프로파일과 트레이스를 수행하는 방법을 다룹니다. 병목이 진짜 CPU인지 먼저 확인해야 하며, I/O·락·타이머·스왑 등에서 시간이 소요되는 경우에는 이 가이드가 적용되지 않습니다.

출처: 공식문서

성능 체크리스트 채우기

병목이 무엇인지 판단하려면 USE(Utilization, Saturation, Errors) 방법론을 권장합니다. 시스템 자원·지표·도구의 매핑을 따라 전반적인 시스템 건강을 점검한 뒤, 병목이 CPU임이 확인됐을 때만 다음 절차를 진행합니다. USE 방법론과 도구 세부는 원문의 링크(Brendan Gregg)를 참고하세요.

빌드 전제 조건 (Build Prerequisites)

On-CPU 분석에는 Redis(및 동적 로드 모듈)의 스택 트레이스를 트레이서가 볼 수 있어야 합니다. Redis는 기본적으로 -O2 스위치로 컴파일되는데, 많은 컴파일러가 런타임 최적화로 프레임 포인터를 생략해 프레임 포인터 기반 스택 워킹을 깨뜨립니다. 이는 실행을 빠르게 하지만 트레이싱을 어렵게 만들 수 있으므로, 프로파일링 환경에서는 컴파일 옵션 조정이 필요할 수 있습니다.

더 알아보기 (Learn more)