Cloudflare, 1.1.1.1 DNS 캐시 최적화로 약 100 TB RAM 확보 (2026)

Cloudflare · 1.1.1.1 · DNS · Rust

September 4, 20269 min read

Cloudflare가 2026년 가장 구체적인 시스템 엔지니어링 글 중 하나를 공개했습니다. Rust에서 DNS 캐시 항목 메모리 레이아웃을 다듬어 1.1.1.1 을 구동하는 전 세계 플릿에서 약 100 TB RAM 을 확보했습니다——서버를 추가하지 않았고, 메모리 절감을 위해 조회를 느리게 만들지도 않았습니다.

2026년 8월 27일 엔지니어링 포스트에서 Sebastiaan Neuteboom은 Big Pineapple(1.1.1.1, Gateway DNS, DNS Firewall, AS112 등 공용 해석 플랫폼)에 대한 다섯 단계 레이아웃 변경을 설명했습니다. TechSpot, GIGAZINE, 개발자 애그리게이터도 같은 숫자를 전했습니다.


핵심 요약

Cloudflare 원문과 후속 보도의 핵심 숫자—플랫폼 규모, 엔트리당 절감, 성능 향상, 프로덕션 롤아웃 기간—을 한 표로 정리했습니다.

항목내용
플랫폼Big Pineapple — 1.1.1.1 및 기타 Cloudflare DNS
규모플릿 동시 2500억+ 캐시 엔트리
엔트리당 점유953 → 420 bytes (−56%)
엔트리당 할당1.1 KB → 461 bytes (−58%)
플릿 RAM 확보약 100 TB (Gen 13 서버 약 130대 분량)
삽입 처리량+43% (625k → 893k entries/s)
조회 지연−19% (828 ns → 670 ns)
프로덕션 p99 메모리9.3 → 5.3 GB (−43%)
롤아웃2026년 5월 18일 – 7월 6일

DNS 규모에서 몇 바이트가 비싼 이유

Big Pineapple은 거대한 인메모리 캐시를 둡니다. 콜드 스타트에는 비어 있고, 쿼리로 채워진 뒤 지역별 한도에서 오래된/덜 인기 있는 항목을 제거합니다.

2500억 이상 동시 엔트리에서는 엔트리당 1바이트 낭비가 플릿 전체 250 GB 이상 RAM입니다. EDNS Client Subnet(ECS)를 쓰는 데이터센터에서는 같은 쿼리 이름도 클라이언트 망별로 다른 답을 캐시해 부담이 더 큽니다.

한 번 쓰고 초당 수백만 번 읽는 구조에서는 성장형 Vec / String 이 “공짜”가 아닙니다.


다섯 가지 Rust 레이아웃 변경

리졸버 전체를 다시 쓴 것이 아니라 캐시 표현을 조였습니다——다섯 단계, 배포하며 측정.

1. 쓰이지 않는 capacity 제거

삽입 후 성장하지 않으므로 Vec / StringBox<[T]> / Box<str> 로 교체. capacity와 과할당 제거——8개 필드에서 약 64 bytes, 힙 낭비 포함. 이 단계만으로 15 TB 이상.

2. 리스트·포인터 축소

Answer / authority / additional를 하나의 리스트와 u16 오프셋으로 통합——엔트리당 약 28 bytes, 플래그 패킹으로 패딩도 회수.

3. 선택적 owner 이름

대부분 레코드 owner는 쿼리 이름과 같습니다. Option 으로 공통 케이스는 캐시 키에서 복원하고, CNAME류 분기만 힙에 보관.

4. 큰 enum 변형 Box

RecordData 는 드문 대형 타입(NAPTR ~136 bytes)에 맞춰 비대해졌습니다. 대형을 Box하면 흔한 A/AAAA가 약 144 bytes 세금을 내지 않습니다.

5. 와이어 포맷 바이트

최대 성과: 길이 접두 원시 DNS 와이어를 연속 Box<[u8]> 에 저장. 대부분 A/AAAA/TXT/DNSSEC는 응답으로 memcpy 가능하고, 지역성이 좋아지며 boxing 비용도 거의 사라집니다.


벤치마크와 프로덕션 결과

합성 채움(약 56% A, 25% AAAA, 19% TXT 대용)과 롤아웃 중 실제 상주 메모리를 모두 공개했습니다.

지표이전이후변화
엔트리 순 점유953 bytes420 bytes−56%
엔트리 할당량1.1 KB461 bytes−58%
캐시 삽입 처리량625,000 /s893,000 /s+43%
캐시 조회 지연828 ns670 ns−19%
인스턴스 메모리(p99)9.3 GB5.3 GB−43%
인스턴스 메모리(p90)6.5 GB3.8 GB−42%
플릿 working-set RAM−약 100 TB≈ Gen 13 ×130

프로덕션 절감은 순수 엔트리 계산보다 작을 수 있습니다——프로세스 RSS에는 캐시 외 상태도 포함되기 때문에 Cloudflare는 둘 다 공개했습니다.


확보한 메모리는 어디에?

유휴 RAM을 쌓아 두지 않습니다. 같은 메모리 예산으로 캐시 용량을 늘리는 재투자——적중률 향상과 업스트림 쿼리 감소. 캐시 구조 추가 최적화도 검토 중입니다.

인메모리 핫 패스에서는 레이아웃 점검의 목표가 청구서 절감만이 아니라 용량과 지연을 함께 개선하는 경우가 많다는 메시지이기도 합니다.


DNS를 넘어 중요한 이유

한 번만 쓰는 컬렉션

생성 후 늘지 않으면 고정 슬라이스가 유리합니다. 수십억 객체에서는 capacity와 과할당이 실제 비용이 됩니다.

드문 대형 변형

enum/union은 최대 변형 기준입니다. 드문 거인을 Box해 흔한 작은 케이스를 밀도 있게.

핫 패스용 직렬화

대부분 바이트를 그대로 다시 내보내면, 풍부한 파싱 구조보다 와이어/직렬화 버퍼가 메모리·CPU 모두에서 유리할 수 있습니다.

임베딩 캐시, feature store, 세션 상태 등 프로세스 내 인덱스에도 같은 직관이 적용됩니다.


FAQ

무엇을 바꿨는지, 속도가 느려졌는지, 롤아웃이 얼마나 걸렸는지, “100 TB”가 단일 서버인지 플릿인지—짧은 답만 필요하면 여기서 확인하세요.

질문
Cloudflare가 무엇을 최적화했나?Big Pineapple(1.1.1.1 등) DNS 캐시 항목의 인메모리 레이아웃.
RAM을 줄이며 느려졌나?아니요——삽입 +43%, 조회 지연 −19%.
프로덕션 롤아웃 기간은?2026년 5월 18일~7월 6일, 단계 배포.
“100 TB”는 단일 서버?플릿 전체 working-set 감소.

출처

최신 소식을 받아보세요

뉴스와 업데이트를 가장 먼저 확인하세요