Cloudflare освободила 100 ТБ оперативной памяти благодаря оптимизации кода DNS-сервиса 😨
Инженеры Cloudflare наглядно показали миру, что такое настоящая оптимизация без покупки нового дорогостоящего железа. Компания смогла освободить порядка 100 ТБ оперативной памяти по всей своей глобальной инфраструктуре, не вытащив ни одной планки DDR5 и не меняя физические серверы. Всё, что для этого потребовалось — залезть в исходники на Rust и вычистить легаси-структуры в DNS-кэше Big Pineapple, на котором крутится публичный резолвер 1.1.1.1.
Всего пять правок в кодовой базе на языке Rust позволили уменьшить средний размер кэшированной DNS-записи с 953 до 420 байт, то есть более чем на 56% 👏
Учитывая, что система одновременно удерживает в памяти свыше 250 миллиардов записей, даже один сэкономленный байт на запись суммарно дает выигрыш более чем в 250 гигабайт ОЗУ. Значительную часть ресурсов, свыше 15 терабайт, освободили за счет отказа от динамических коллекций Rust в пользу структур фиксированного размера, поскольку после помещения в кэш данные больше не расширяются. Кроме того, разработчики объединили разрозненные списки записей в единый компактный буфер, избавились от дублирования доменных имен и перевели хранение в компактный бинарный формат с указанием длины вместо выделения избыточных блоков памяти под короткие записи.
Оптимизация не только высвободила эквивалент памяти 130 современных серверов поколения Gen 13, но и ощутимо подняла быстродействие: скорость вставки данных в кэш выросла на 43%, а задержка поиска сократилась с 828 до 670 наносекунд.
🥸 godnoTECH - Новости IT
Post #12045
912

- 👍 21
- ❤ 3
- 🔥 3