Прозрачная разгрузка памяти: больше памяти при меньших затратах и мощности
Мы наблюдаем огромный рост потребностей в памяти новых приложений, таких как машинное обучение, в сочетании с замедлением масштабирования устройств DRAM и большими колебаниями стоимости DRAM. Это сделало DRAM непомерно дорогой как единственное решение по емкости памяти в масштабах Meta.
Но альтернативные технологии, такие как твердотельные накопители (SSD), подключаемые к NVMe, предлагают более высокую емкость, чем DRAM, при гораздо меньших затратах и мощности. Прозрачная разгрузка более холодной памяти на более дешевые технологии памяти с помощью методов ядра или гипервизора предлагает многообещающий подход к ограничению спроса на DRAM. Однако основная задача заключается в разработке надежного решения в масштабе центра обработки данных. Такое решение должно быть способным справляться с разнообразными рабочими нагрузками и большими различиями в производительности различных устройств разгрузки, таких как сжатая память, твердотельные накопители и NVM.
Прозрачная разгрузка памяти (TMO) — это решение Meta для гетерогенных сред центров обработки данных. Он представляет новый механизм ядра Linux, который измеряет потери работы из-за нехватки ресурсов ЦП, памяти и ввода-вывода в режиме реального времени. Руководствуясь этой информацией и без каких-либо предварительных знаний о приложении, TMO автоматически регулирует объем памяти для разгрузки на гетерогенное устройство, например сжатую память или твердотельный накопитель. Это происходит в зависимости от характеристик производительности устройства и чувствительности приложения к более медленному доступу к памяти. TMO комплексно определяет возможности разгрузки не только из контейнеров приложений, но и из дополнительных контейнеров, которые обеспечивают функции уровня инфраструктуры.
TMO работает уже больше года и сэкономил от 20 до 32 процентов общего объема памяти на миллионах серверов в нашем обширном парке центров обработки данных. Мы успешно внедрили компоненты ОС TMO в ядро Linux.
В последние годы в наших центрах обработки данных было успешно развернуто или находится на подходе множество более дешевых технологий памяти, отличных от DRAM, таких как твердотельные накопители NVMe. Более того, новые технологии шины памяти, отличные от DDR, такие как Compute Express Link (CXL), обеспечивают семантику доступа, подобную памяти, и производительность, близкую к DDR. Иерархия памяти-хранилища, показанная на рисунке 1, иллюстрирует, как различные технологии сочетаются друг с другом. Слияние этих тенденций открывает новые возможности для многоуровневого хранения памяти, которые были невозможны в прошлом.
Благодаря многоуровневому распределению памяти данные, к которым реже обращаются, переносятся в более медленную память. Само приложение, библиотека пользовательского пространства, ядро или гипервизор могут управлять процессом миграции. Наша работа в TMO сосредоточена на миграции на основе ядра или замене. Почему? Потому что его можно прозрачно применять ко многим приложениям, не требуя модификации приложения. Несмотря на концептуальную простоту, замена ядра для чувствительных к задержке приложений центров обработки данных является сложной задачей в гипермасштабировании. Мы создали TMO, прозрачное решение для разгрузки памяти для контейнерных сред.
ТМО состоит из следующих компонентов:
Растущая стоимость DRAM как часть стоимости сервера мотивировала нашу работу над TMO. На рисунке 2 показана относительная стоимость DRAM, сжатой памяти и твердотельного накопителя. Мы оцениваем стоимость сжатой DRAM на основе трехкратной степени сжатия, соответствующей среднему значению наших производственных рабочих нагрузок. Мы ожидаем, что стоимость DRAM вырастет и достигнет 33 процентов наших расходов на инфраструктуру. Хотя это не показано ниже, энергопотребление DRAM следует аналогичной тенденции: мы ожидаем, что оно достигнет 38 процентов мощности нашей серверной инфраструктуры. Это делает сжатую DRAM хорошим выбором для разгрузки памяти.
Помимо сжатой DRAM, мы также оснащаем все наши производственные серверы очень функциональными твердотельными накопителями NVMe. На системном уровне твердотельные накопители NVMe составляют менее 3 процентов стоимости сервера (примерно в 3 раза ниже, чем сжатая память в нашем нынешнем поколении серверов). Более того, на рисунке 2 показано, что соотношение изо-емкости к DRAM и твердотельным накопителям остается ниже 1 процента от стоимости сервера для всех поколений — примерно в 10 раз ниже, чем у сжатой памяти по стоимости за байт! Эти тенденции делают твердотельные накопители NVMe гораздо более экономичными по сравнению со сжатой памятью.