Facebook предложи нов механизъм за управление на паметта slab за ядрото на Linux

Роман Гущин (Roman Gushchin) от Facebook публикува в списке рассылки разработчиков ядра Linux представил патчи с реализацией нового контроллера распределения памяти slab (slab memory controller). Новый контроллер выделяется тем, что переносит учёт slab с уровня страниц памяти на уровень объектов ядра, позволяя совместное использование slab-страниц в разных cgroup, вместо создания отдельных кэшей slab для каждой cgroup.

Предложенный подход позволяет повысить эффективность использования slab, сократить размер выделяемой для slab памяти на 30-45% и значительно уменьшить общее потребление памяти ядром. За счёт снижения числа неподвижных slab также наблюдается положительный эффект в уменьшении фрагментации памяти. Новый контроллер памяти значительно упрощает код учёта slab и не требует внедрения сложных алгоритмов динамического создания и удаления slab-кэшей для каждой cgroup. Все cgroup для памяти в новой реализации используют общий набор кэшей slab, а время жизни кэшей slab больше не связано с жизненным циклом установленных через cgroup ограничения на использование памяти.

Реализованный в новом контроллере slab более точный учёт ресурсов теоретически может увеличить нагрузку на CPU, но на практике различия оказались незначительными. В частности, новый контроллер slab уже несколько месяцев используется на рабочих серверах Facebook, обрабатывающих разные виды нагрузки, и заметных регрессий пока не наблюдалось. При этом замечено значительное снижение расхода памяти — на некоторых хостах удалось сэкономить до 1 ГБ памяти, однако этот показатель сильно зависит от характера нагрузки, общего объёма ОЗУ, количества CPU и особенностей работы с памятью. Ранее проведённые тесты беше показано показали снижение расхода памяти на 650-700 МБ (42% от slab-памяти) на web-фронтенде, 750-800 МБ (35%) на сервере с кэшем СУБД и 700 МБ (36%) на DNS-сервере.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster