비싼 “1바이트”
2026년의 테크 업계에서 모든 기업들은 컴퓨팅 파워와 메모리를 확보하기 위해 서버를 미친 듯이 사들이고 있습니다. 하지만 웹 인프라의 거인 Cloudflare의 데이터 센터에서는 엔지니어들이 확장을 멈추고 대신 낭비되는 바이트를 찾기 위해 로우레벨 코드를 뚫어지게 쳐다보았습니다.
Cloudflare의 DNS 시스템인 “Big Pineapple”은 매일 전 세계의 방대한 네트워크 요청을 처리합니다. 캐시 항목은 2,500억 개가 넘으며, 이 천문학적인 숫자 앞에서는 단 1바이트만 낭비해도 클러스터 전체에서 250GB의 메모리가 추가로 소비됩니다.
이미지: Cloudflare 서비스 노드 분포. 출처: Cloudflare Blog
TB급 VRAM을 요구하는 거대 AI 모델 앞에서는 수백 GB가 하찮게 들릴 수도 있습니다. 그러나 극도의 빠른 응답이 필요한 로우레벨 시스템에서 비대해진 메모리는 값비싼 하드웨어 청구서를 가져올 뿐만 아니라, 용납할 수 없는 지연을 초래하기도 합니다.
픽셀 단위의 쥐어짜기
리소스 낭비에 직면하여 그들은 가장 하드코어한 해결책을 채택했습니다. 바로 Rust 언어 수준에서 극한의 메모리 레이아웃 최적화를 진행한 것입니다. 이는 짐이 가득 찬 창고에서 선반 구조를 재배치하여 억지로 넓은 빈 공간을 만들어내는 것과 같습니다.
기존 방식에서는 데이터를 저장하기 위해 동적 배열(Vec)이나 문자열(String)을 사용합니다. 이 방식은 자체적으로 “용량(capacity)” 필드를 가지고 있어 미래의 확장을 위한 공간을 예약해 둡니다. Cloudflare의 엔지니어들은 이를 모두 길이가 고정된 Box<[T]>와 Box<str>로 교체하여 예약 공간의 낭비를 직접적으로 차단했습니다.
이미지: 동적 배열의 용량 필드 제거 전후의 메모리 구조 비교. 출처: Cloudflare Blog
또한 데이터 구조를 리팩터링하여 흩어져 있던 여러 목록을 단일 목록으로 병합하고, 오프셋(offset)을 사용하여 정확하게 위치를 지정했습니다. 쿼리한 도메인 이름이 레코드 소유자와 같은 경우 시스템은 소유자 필드를 아예 삭제해 버립니다. 이러한 일련의 조치를 통해 캐시 항목당 메모리 사용량이 50% 이상 줄어들었습니다.
성능과 비용의 윈윈
극한의 절약은 놀라운 보상으로 돌아왔습니다. 5번의 연속적인 최적화로 누적 100TB에 달하는 메모리가 확보되었습니다. 이는 Gen 13 서버 130대의 총 메모리 용량과 맞먹습니다.
이를 통해 막대한 서버 구매 비용을 절감했을 뿐만 아니라 시스템의 전반적인 성능도 크게 향상되었습니다. 더욱 작아진 데이터 구조는 CPU 캐시 적중률을 높였고, 궁극적으로 시스템의 삽입 처리량을 43% 향상시켰으며 쿼리 지연 시간을 19% 낮췄습니다.
시스템 최적화는 이 시대에 비주류 기술이 된 것처럼 보입니다. 하지만 사실은 간과하기 쉬운 로우레벨의 세부 사항에 여전히 거대한 에너지가 숨겨져 있다는 것을 증명합니다.
잊혀진 지렛대
100TB의 메모리는 엔지니어들이 코드 한 줄 한 줄을 최적화하여 쥐어짜낸 결과입니다. 하드웨어를 미친 듯이 쌓아 올리는 이 시대에 Cloudflare는 모두에게 고전적인 교훈을 주었습니다.
모두가 돈으로 컴퓨팅 파워의 병목 현상을 해결하는 데 익숙해져 있으며, 가장 기본적인 코드 품질은 쉽게 뒷전으로 밀려납니다. 우리가 수천억 개의 파라미터와 수만 대의 GPU 클러스터에 대해 이야기할 때, 어쩌면 메모리 속에서 잠자고 있는 무효한 바이트들을 내려다보아야 할지도 모릅니다.
Cloudflare의 100TB 메모리 확보 사건의 직관적인 데이터는 한 가지 사실을 증명합니다. 모두가 AI에 막대한 자본을 쏟아붓는 시대에, 고전적인 시스템 최적화야말로 가장 크고 종종 간과되는 비용 절감 수단이라는 것입니다. 맹목적으로 하드웨어를 쌓아 올리기보다는 우리가 딛고 있는 인프라를 다시 검토하는 것, 필자는 이것이 바로 이 시대의 시스템 엔지니어들이 제시할 수 있는 가장 강력한 응답이라고 생각합니다.
참고 링크:
- Cloudflare Blog