Cloudflare оптимизировала систему и освободила 100 ТБ оперативной памяти

Десятки терабайт ОЗУ скрывались в двух байтах

21 сентября 2026, 23:18Сети и серверыCloudflareDexter1

Cloudflare удалось освободить примерно 100 ТБ оперативной памяти в своей глобальной сети благодаря усовершенствованию алгоритма распределения кэшированных данных между серверами. Инженеры компании переосмыслили работу согласованного хеширования в открытом фреймворке Pingora и выявили, что значительная часть задействованной памяти на самом деле была избыточной.

Изображение сгенерировано GeminiИсточник изображения: Gemini

Cloudflare активно кэширует веб-контент, чтобы передавать пользователям запрашиваемую информацию непосредственно из памяти или с диска ближайшего сервера, избегая обращения к исходному сайту каждый раз. Для выбора подходящего кэш-сервера компания применяет алгоритм Ketama, основанный на согласованном хешировании.

Система преобразует URL в числовой хеш и сопоставляет его с хешами серверов. Каждому физическому серверу назначается множество виртуальных точек, случайным образом распределенных по хеш-кольцу. Эта схема позволяет равномерно перераспределять запросы между оставшимися узлами, если один из серверов выходит из строя.

Со временем в инфраструктуре Cloudflare на каждый сервер приходилось около 100 000 таких хешей. Дополнительные сложности создавали различные веса серверов, региональные особенности инфраструктуры и ограничения, из-за которых не каждый узел мог обрабатывать любой запрос. В результате таблицы маршрутизации начали занимать огромное количество оперативной памяти.

Инженеры провели статистический анализ и обнаружили, что такое большое количество виртуальных точек практически не влияет на качество балансировки. После отметки примерно в 10 000 хешей дальнейшее увеличение их числа давало лишь незначительный прирост точности распределения нагрузки.

Cloudflare уменьшила количество виртуальных точек примерно в десять раз, почти не ухудшив балансировку. Затем инженеры дополнительно оптимизировали структуры данных на Rust и сократили размер каждой записи таблицы «хеш — сервер» еще на два байта. Для одной записи это почти незаметная экономия, но при миллиардах записей это оборачивается десятками терабайт памяти.

В результате двух оптимизаций удалось освободить около 100 ТБ оперативной памяти. При этом Cloudflare не стала немедленно полностью заменять старую реализацию: новую версию алгоритма добавили параллельно с прежней, чтобы в случае обнаружения проблем можно было быстро вернуться к предыдущему варианту.

Это уже не первый случай, когда Cloudflare удается сэкономить десятки терабайт памяти благодаря относительно небольшим изменениям в программном обеспечении. Ранее компания также освободила около 100 ТБ ОЗУ, оптимизировав структуру записей DNS-кеша сервиса 1.1.1.1.

Источники:Toms HardwareСети и серверы144 минуты назад

Источник
Елизавета Воронцова

Журналист информационного портала vtambove.ru. Освещает городские события, общественную повестку, социальные инициативы и актуальные новости региона. В работе придерживается принципов точности, оперативности и понятной подачи информации. Особое внимание уделяет темам, которые напрямую влияют на жизнь жителей Тамбова и области.

Оцените автора
Тамбов