Инструменты22 сентября 2026 г., 06:17 МСК🤖 Auto

Cloudflare сэкономила 100 ТБ RAM, сократив хэши серверов на 90%

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

Баннер новости 8006

Проблема масштабирования кэширования

Cloudflare использует собственный open-source фреймворк Pingora для маршрутизации URL-запросов к серверам кэширования. Ключевая задача — маппинг произвольного URL на конкретный сервер с использованием алгоритма Ketama. В условиях высокой отказоустойчивости, когда бэкенд-серверы постоянно появляются и исчезают, стандартный подход требует хранения огромных таблиц хэшей в оперативной памяти.

Проблема «наивного» хэширования заключается в неравномерной нагрузке: если один сервер отключается, трафик перенаправляется на соседние узлы в хэш-пространстве, перегружая их, в то время как другие остаются недогруженными. Решение — увеличение количества хэшей на сервер и их случайное распределение. Однако на масштабах Cloudflare это приводило к хранению до 100 000 хэшей на машину, что вызывало критический рост потребления RAM.

Математическая оптимизация и экономия

Инженеры применили статистический анализ и пришли к выводу, что 100 000 хэшей — это перебор. Снижение количества записей до 10 000 (на 90%) сохранило практически ту же точность распределения нагрузки, так как ошибка распределения практически не снижается при увеличении порядка значений выше 10 000. Дополнительно команда оптимизировала структуры данных в Rust, сэкономив 2 байта на каждую запись. Учитывая миллиарды записей, это дало значительный суммарный эффект.

Результаты внедрения

Итоговая экономия составила около 100 ТБ оперативной памяти по всей инфраструктуре. Для обеспечения безопасности оптимизация была внедрена как отдельный путь кода (v2), позволяющий мгновенно откатиться к старой версии в случае сбоев, не нарушая работу сервиса.

Параметр До оптимизации После оптимизации Эффект
Количество хэшей на узел 100 000 10 000 Снижение на 90%
Размер записи (Rust) Стандартный Оптимизированный (-2 байта) Экономия на миллиардах записей
Общая экономия RAM — — ~100 ТБ

Почему это важно

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

Источник: Tom's Hardware ↗