LINUX.ORG.RU

Память


5

0

Всего сообщений: 211

См. также:

 , , , , , , , ,

Новый метод управления памятью от Facebook

Группа Linux General

Один из членов команды разработки социальной сети Facebook, Роман Гущин, предложил в рассылке разработчиков набор из патчей для ядра Linux, направленных на улучшение работы с памятью через реализацию нового контроллера управления оной – slab (slab memory сontroller).


Распределение slab – это механизм управления памятью, предназначенный для более эффективного распределения памяти и устранения значительной фрагментации. Основой этого алгоритма является сохранение выделенной памяти, содержащей объект определенного типа, и повторное использование этой памяти при следующем выделении для объекта того же типа. Этот метод был впервые введен в SunOS Джефом Бонвиком и сейчас широко используется в ядрах многих операционных систем Unix, включая FreeBSD и Linux.


В основе нового контроллера лежит перенос учёта slab с уровня страниц памяти на уровень объектов ядра, что предоставляет возможность совместного использования одной slab-страницы в разных cgroup, вместо выделения отдельного кэша для каждой cgroup.

По результатам испытаний следует, что предложенный метод управления памятью позволяет повысить эффективность использования slab до 45%, а также понизит общее потребление памяти ядром ОС. Также за счет сокращения количества выделяемых под slab страниц уменьшается фрагментация памяти в целом, что не может не сказаться на быстродействии системы.

Новый контроллер уже несколько месяцев тестируется на рабочих серверах Facebook, и пока это тестирование можно назвать успешным: при отсутствии потерь в быстродействии и увеличения количества ошибок замечено явное уменьшение расхода памяти – на некоторых серверах до 1Гб. Это число довольно субъективно, так, например, ранее проведенные тесты показали немного меньшие результаты:

  • 650-700 МБ на веб-фронтенде;
  • 750-800 МБ на сервере с кэшем баз данных;
  • 700 МБ на DNS-сервере.

>>> Страничка автора на GitHub

>>> Результаты ранних тестов

>>> Подробности

 , ,

Zhbert ()

Еще новости

Форум

Октябрь 2020

Сентябрь 2020

Июль 2020

Июнь 2020

Май 2020

Апрель 2020

Март 2020

Январь 2020

Декабрь 2019

Ноябрь 2019

Октябрь 2019