- PVSM.RU - https://www.pvsm.ru -
Cloudflare удалось высвободить около 100 ТБ оперативной
памяти в своей глобальной инфраструктуре благодаря оптимизации алгоритма
распределения кешированных данных между серверами. Инженеры компании
пересмотрели работу согласованного хеширования в открытом фреймворке Pingora и
обнаружили, что значительная часть используемой памяти фактически была
избыточной.
[1]Cloudflare активно кеширует веб-контент, чтобы отдавать
пользователям запрошенные данные непосредственно из памяти или с диска
ближайшего сервера, не обращаясь каждый раз к исходному сайту. Для выбора
подходящего кеш-сервера компания использует алгоритм Ketama, основанный на
согласованном хешировании.
Система преобразует URL в числовой хеш и сопоставляет его с
хешами серверов. При этом каждому физическому серверу назначается множество
виртуальных точек, случайным образом распределенных по хеш-кольцу. Такая схема
позволяет равномерно перераспределять запросы между оставшимися узлами, если
один из серверов выходит из строя.
Со временем в инфраструктуре Cloudflare на каждый сервер
пришлось около 100 000 таких хешей. Дополнительную сложность создавали разные
веса серверов, региональные особенности инфраструктуры и ограничения, из-за
которых не каждый узел мог обслуживать любой запрос. В результате таблицы
маршрутизации стали занимать огромное количество оперативной памяти.
Инженеры провели статистический анализ и выяснили, что
настолько большое количество виртуальных точек практически не влияет на
качество балансировки. После отметки примерно в 10 000 хешей дальнейшее
увеличение их числа давало лишь минимальный прирост точности распределения
нагрузки.
Cloudflare сократила количество виртуальных точек примерно в
десять раз, практически не ухудшив балансировку. Затем инженеры дополнительно
оптимизировали структуры данных на Rust и уменьшили размер каждой записи
таблицы «хеш — сервер» еще на два байта. Для одной записи это почти незаметная
экономия, но при миллиардах записей она превращается в десятки терабайт памяти.
В совокупности две оптимизации позволили высвободить около
100 ТБ оперативной памяти. При этом Cloudflare не стала сразу полностью
заменять старую реализацию: новую версию алгоритма добавили параллельно с
прежней, чтобы при обнаружении проблем можно было быстро вернуться к
предыдущему варианту.
Это уже не первый случай, когда Cloudflare удается
сэкономить десятки терабайт памяти благодаря относительно небольшим изменениям
в программном обеспечении. Ранее компания также высвободила около 100 ТБ ОЗУ,
оптимизировав структуру записей DNS-кеша сервиса 1.1.1.1.
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/458469
Ссылки в тексте:
[1] Image: https://media.ixbt.com/fit-in/1600x1200/ixbt-data/1374891/media-cymxygbpktsjyiwcyb6jhswd.jpg
[2] Gemini: https://api.ixbt.com/to/ZXlKcGRpSTZJamhLVVVsV1ZFZHhhR1pMTlVvcmFrcHRNVzFWWVhjOVBTSXNJblpoYkhWbElqb2lTM0pIU1hacGNrWnlhVFF5WlROSWFrMHpTVlJyTWlzck5qUmpMMWhSYjBOMGJ6UXlSa1JSWWs5d1NUMGlMQ0p0WVdNaU9pSmlPR1UyWmpVNU5qRm1Nek5rT1RBME1EVXlaVFEzWlRsaU9XSXlOR1ZtT0dZNE56bGlZelk0TWpOak5qSXdabU5rTW1NME16YzJNelppWldFM01qQXpJaXdpZEdGbklqb2lJbjA9
[3] Источник: https://www.ixbt.com/news/2026/09/21/437410-cloudflare-osvobodila-100-tb-operativnoi-pamiati-izmeniv-vsego-neskolko-strok-v-svoei-sisteme.html
Нажмите здесь для печати.