최근 Cloudflare는 차세대 에지 컴퓨팅 인프라인 Gen 13 서버의 출시를 발표했습니다. 이번 세대의 핵심은 단순한 하드웨어 업그레이드를 넘어, 소프트웨어 아키텍처의 근본적인 변화(FL1에서 FL2로의 전환)를 통해 하드웨어의 잠재력을 극대화했다는 점에 있습니다.
1. 하드웨어의 딜레마: AMD Turin의 고밀도 코어와 캐시 축소
Cloudflare의 이전 세대(Gen 12)는 대용량 3D V-Cache를 탑재한 AMD EPYC™ Genoa-X 프로세서를 사용했습니다. 하지만 차세대 5세대 AMD EPYC™ Turin 프로세서로 넘어오면서 중요한 설계 변경이 발생했습니다.
핵심 스펙 비교:
- Gen 12 (Genoa-X): 코어당 12MB L3 캐시 (3D V-Cache)
- Gen 13 (Turin 9965): 코어당 2MB L3 캐시 (1/6 수준 감소)
Turin 프로세서는 최대 192코어(384스레드)라는 압도적인 스루풋을 제공하지만, 코어당 캐시 용량은 크게 줄었습니다. 이는 기존 NGINX 및 LuaJIT 기반의 FL1(Legacy Stack)에는 치명적이었습니다. 캐시 지역성(Cache Locality)에 의존하던 기존 스택은 L3 캐시 미스로 인해 DRAM 접근 빈도가 높아졌고, 이는 곧 50% 이상의 레이턴시 패널티로 이어졌습니다.
2. 소프트웨어의 혁명: Rust 기반 FL2로의 전환
Cloudflare는 단순히 더 비싼 하이엔드 CPU를 찾는 대신, 소프트웨어 레이어를 완전히 재작성하는 선택을 했습니다. FL2(Flow Layer 2)는 Cloudflare의 핵심 요청 처리 레이어를 Rust로 재구축한 프로젝트입니다.
- 캐시 의존성 탈피: 대용량 L3 캐시 없이도 코어 수에 비례하여 성능이 확장되도록 최적화되었습니다.
- 메모리 지연 시간 극복: DRAM 접근이 빈번해지는 상황에서도 효율적인 스케줄링을 통해 레이턴시를 유지합니다.
- 성능 효율성: 192코어 Turin 서버에서 FL1 대비 2배 이상의 에지 컴퓨팅 성능을 확보했습니다.
3. 성능 지표 및 효율성
Gen 13 서버는 Zen 5 아키텍처를 통해 IPC(Instructions Per Cycle)를 개선했을 뿐만 아니라, 전력 효율성 측면에서도 코어당 전력 소비를 최대 32% 절감했습니다. DDR5-6400 지원을 통해 고밀도 코어에 필요한 메모리 대역폭을 충분히 공급함으로써 TCO(총 소유 비용) 관점에서도 최적의 결과를 도출했습니다.
이번 Cloudflare의 사례는 현대적인 인프라 아키텍처에서 소프트웨어와 하드웨어의 Co-design이 얼마나 중요한지 보여줍니다. NGINX와 LuaJIT 기반의 FL1은 수년간 훌륭한 성능을 보여주었으나, CPU 아키텍처가 '거대 캐시'에서 '고밀도 코어'로 패러다임을 전환함에 따라 한계에 봉착했습니다.
여기서 Rust의 역할이 결정적이었습니다. Rust는 C/C++ 수준의 저수준 제어를 제공하면서도 안전한 동시성을 보장하며, 특히 메모리 레이아웃과 데이터 흐름을 정밀하게 제어할 수 있게 해줍니다. FL2 개발팀은 이를 통해 캐시 미스 시 발생하는 파이프라인 정체 현상을 최소화하고, 현대적인 NUMA(Non-Uniform Memory Access) 환경에서 데이터를 더 효율적으로 배치할 수 있었을 것입니다.
결론적으로, 하드웨어의 물리적 한계(캐시 감소)를 소프트웨어 아키텍처의 혁신(Rust Rewrite)으로 극복하고, 이를 통해 2배의 성능 향상을 이뤄낸 것은 인프라 아키텍트들이 지향해야 할 진정한 최적화의 표본이라 할 수 있습니다.
원문 출처: Launching Cloudflare’s Gen 13 servers: trading cache for cores for 2x edge compute performance
댓글
댓글 쓰기