작은 최적화로 100TB RAM 확보한 클라우드플레어의 인프라 기술 — AI 생성 일러스트AI 일러스트
인프라 뉴스

작은 최적화로 100TB RAM 확보한 클라우드플레어의 인프라 기술

Saving another 100TB of RAM

Hacker News9월 18일 발표 · 3분

클라우드플레어가 대규모 로드 밸런싱 서비스의 메모리 구조를 최적화하여 전 세계적으로 100TB 이상의 RAM을 확보하는 데 성공했습니다.

세 줄 요약Hacker News 원문 기반
  1. 특히 해시 저장 구조를 원시 바이트 배열로 재설계하는 등 미세한 코드 레벨의 최적화를 통해 메모리 사용량을 획기적으로 줄였습니다.
  2. 이 사례는 아무리 거대한 분산 시스템이라도 작은 효율성 개선이 전체 인프라 운영에 막대한 영향을 미칠 수 있음을 보여주는 중요한 예시입니다.
  3. 일관성 해싱(Consistent Hashing)과 같은 복잡한 수학적 원리와 데이터 구조에 대한 깊은 이해가 필수적으로 요구되는 기술입니다.

클라우드플레어는 전 세계적으로 페타바이트급 RAM과 수백만 개의 CPU 코어를 사용하는 대규모 시스템을 운영하고 있으며, 모든 서비스가 노드에서 구동되면서 자원 관리가 매우 중요합니다. 이러한 환경에서 작은 개선점도 크게 증폭될 수 있습니다. 이번 사례는 내부 로드 밸런싱 서비스인 Pingora Backend Router(PBR)의 메모리 사용량을 분석하는 과정에서 시작되었는데, 특히 일관성 해싱을 처리하는 open-source 라이브러리 pingora-ketama 부분에서 예상보다 높은 메모리 사용량이 발견되었습니다.

이 시스템은 캐시 가능한 요청을 서버로 라우팅하기 위해 일관성 해싱(Consistent Hashing) 방식을 사용합니다. 이 방식의 효율성을 높이기 위해 개발팀은 데이터 구조 자체를 최적화하는 작업을 진행했습니다. 기존에는 Point 구조체를 사용하여 해시와 인덱스를 저장했으나, Rust의 정렬 규칙 때문에 메모리 오버헤드가 발생했습니다. 이를 해결하기 위해 raw byte array를 사용하는 방식으로 코드를 변경하자, 일관성 해싱에 사용되는 메모리 공간이 무려 25% 감소하는 성과를 거두었습니다.

이러한 미세한 구조적 개선은 전 세계적으로 100TB 이상의 RAM을 회수할 수 있게 했습니다. 또한, 시스템의 부하 분산 균형을 맞추기 위해 서버당 해시 개수를 늘리는 방법(Law of Large Numbers 적용)이나, 특정 기능 조합에 따라 완전히 새로운 '링'을 추가해야 하는 등 복잡한 기술적 고려가 필요합니다. 이는 아무리 거대한 규모의 인프라라도 작은 알고리즘 및 데이터 구조 레벨의 최적화가 막대한 자원 확보로 이어질 수 있음을 보여줍니다.

원문Hacker News · Saving another 100TB of RAM

평일 아침 메일로 받아 보기 ›틀린 곳 알리기