0
Cloudflare Gen 13 서버: 캐시를 코어로 바꿔 성능 2배 달성한 이야기
backend
요약
기사 전체 정리
Cloudflare Gen 13 서버: 캐시를 코어로 바꿔 성능 2배 달성한 이야기
문제: 캐시가 6분의 1로 줄었음
- Gen 12는 AMD Genoa-X 프로세서로 3D V-Cache 덕에 코어당 L3 캐시가 12MB였음
- Gen 13 후보인 Turin 9965는 192코어로 코어 수가 2배지만, 코어당 L3는 2MB에 불과함. 캐시가 6배 줄어든 셈
- L3 캐시 히트는 약 50사이클인데 미스 나면 DRAM까지 가야 해서 350사이클 이상 소요. 7배 페널티임
FL1(레거시 스택)으로는 안 됐음
- FL1은 NGINX + LuaJIT 기반 레거시 요청 처리 레이어임
- Turin 9965에서 FL1 성능: 처리량은 +62%였지만 고부하 시 레이턴시가 50% 이상 악화 — 서비스 품질 기준 미달
- AMD와 협업해서 하드웨어 프리페처 조정, 워커 스케일링, CPU 피닝 등 다양한 최적화를 시도했지만 효과가 미미했음
- AMD PQOS로 CCD 전체를 FL1에 전담 할당하니 의미 있는 개선이 나왔지만 근본 해결은 아니었음
FL2: Rust 전면 재작성이 답이었음
- FL2는 15년 된 NGINX/LuaJIT 코드를 Pingora/Oxy 프레임워크 기반 Rust로 완전 재작성한 것
- 원래 캐시 문제를 풀려고 만든 게 아님. 메모리 안전성, 개발 속도, 모듈성을 위해 시작한 프로젝트였음
- 그런데 FL2의 깔끔한 메모리 접근 패턴이 대용량 L3 캐시 의존도를 없애버림
FL2 + Turin 9965 결과
- CPU% 대비 요청 처리량: FL1 대비 50% 향상
- Gen 12 대비 레이턴시: 70% 감소
- Gen 12 대비 처리량: 2배 (FL1으로는 62%가 한계였음)
- 성능/와트: Gen 12 대비 50% 개선
- 랙당 처리량: Gen 12 대비 60% 증가 (동일 전력 예산 내)
배포 현황
- AMD EPYC Turin 9965(192코어/384스레드)를 Gen 13 공식 프로세서로 확정함
- 하드웨어 검증 완료, 글로벌 엣지 네트워크에 대규모 배포 중
- 하드웨어-소프트웨어 공동 설계의 중요성을 잘 보여주는 사례임
댓글
댓글
댓글을 불러오는 중...