Предлагают новый контроллер памяти для ядра Linux.

Ядро Linux

Диспетчер памяти - это часть системы. операционный Он разделяет память между операционной системой и различными приложениями. Термин память относится в основном к основной памяти (RAM), но для ее управления требуется участие вспомогательной памяти и кэш-памяти.

Менеджер памяти особенно отвечает за эффективное выделение памяти процессам, что означает, что вы должны иметь возможность перечислять свободные места доступной памяти, выделять память, необходимую для новых процессов, и освобождать память от процессов, которые завершаются. Диспетчер процессов в ядре Linux - это диспетчер SLAB.

ПЛИТА полагается на систему блоков и кеширования, которая оптимизирует запросы к памяти.. Этот тип управления памятью снижает фрагментацию, вызванную операциями выделения и перемещения.

Распределение блоков включает в себя реализацию кеша для определенного типа / размера объекта, который имеет несколько предварительно выделенных блоков памяти, разрезанных на части фиксированного размера, которые подходят для определенных объектов.

SLAB управляет частями, так что, когда ядру предлагается выделить память для объекта, Вы можете удовлетворить этот запрос с помощью запасной части из существующего блока. SLAB сохраняет выделенную память для повторного использования при последующем распределении аналогичных объектов и, таким образом, снижает накладные расходы, связанные с инициализацией объекта.

Они намерены заменить SLAB

Роман Гущин, Член группы разработчиков ядра Linux в Facebook, он обнаружил то, что он считает «серьезным недостатком» в текущем диспетчере / контроллере памяти. И гнедавно предложил новый контроллер памяти блокировать который обещает значительно улучшить использование памяти между несколькими "контрольными группами" (или контрольные группы) по памяти.

Учитывая это, важно отметить, что cgroups относятся к функции ядра Linux, которая позволяет ограничивать, подсчитывать и изолировать использование ресурсов системы (процессор, память, использование диска и т. Д.), А также термин «страница плиты» может быть ассимилирован SLAB с процессом выделения памяти.

По словам Гущина:

«Настоящая причина того, что существующий дизайн приводит к низкому использованию SLAB, проста: страницы slab используются исключительно одним пулом памяти.

Если cgroup сделала всего несколько распределений определенного размера, или если после удаления cgroup осталось несколько активных объектов, или если cgroup содержит однопоточное приложение, которое практически не выделяет ядра, но делает это каждый раз в новый ЦП: во всех этих случаях результирующее использование SLAB очень мало.

Если расчет kmem отключен, ядро ​​может использовать свободное пространство на страницах плитки для других выделений «.

Гущин утверждает, что это не было проблемой, когда драйвер kmem был введен как дополнительная функция, которую нужно было включить для каждого пула памяти.

Однако сейчас, драйвер kmem включен по умолчанию для cgroup v1 и v2. А поскольку современные системы имеют тенденцию создавать большое количество c-групп, использование SLAB менее эффективно.

По его словам, благодаря разделению листов-плит между различными группами памяти и используя переработанную систему, в которой учет ведется по объектам, а не по страницам, в ядре linux был бы оптимизированный контроллер памяти который предлагает гораздо более эффективный уровень использования.

Предложенный Гущиным патч содержит два полунезависимых элемента: API загрузки подстраниц, который может использоваться в будущем для целей бухгалтерского учета, и API mem_cgroup_ptr.

Тесты, проведенные с новым контроллером память о гущине показали, что в Linux можно получить от 35% до 42% больше памяти в интерфейсной сети, DNS-сервер и кеш базы данных, а также многие другие рабочие нагрузки.

Предложение Гущина сейчас находится под заголовком «запрос комментариев». В случае принятия он может быть интегрирован в версию ядра Linux 2020 года.

источник: https://lkml.org/


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.