Вони пропонують новий контролер пам'яті для ядра Linux

Ядро Linux

Менеджер пам'яті - це підмножина системи операційна Він розподіляє пам'ять між операційною системою та різними програмами. Термін пам'ять відноситься головним чином до основної пам'яті (ОЗУ), але для управління нею потрібен внесок допоміжної пам'яті та кеш-пам'яті.

Менеджер пам'яті особливо відповідає за ефективний розподіл пам'яті для процесів, що означає, що ви повинні мати можливість перерахувати вільні місця доступної пам’яті, виділити пам’ять, необхідну для нових процесів, і вилучити пам’ять із процесів, що закінчуються. Диспетчер процесів у ядрі Linux - це диспетчер SLAB.

ПЛИТА спирається на систему блоків та кешування, яка оптимізує запити на пам’ять. Цей тип управління пам'яттю зменшує фрагментацію, спричинену операціями виділення та переміщення.

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

SLAB керує фрагментами так, що коли ядру пропонується виділити пам'ять для об'єкта, Ви можете задовольнити цей запит за допомогою запасної частини з існуючого блоку. SLAB зберігає виділену пам'ять для повторного використання при подальших розподілах подібних об'єктів, і таким чином зменшує накладні витрати, пов'язані з ініціалізацією об'єкта.

Вони мають намір замінити SLAB

Роман Гущин, Член команди інженерів ядра Linux у Facebook, він виявив, що він вважає "серйозною вадою" в поточному менеджері / контролері пам'яті. І рнещодавно запропонував новий контролер пам'яті блок що обіцяє суттєво покращити використання пам'яті серед декількох "груп" (або контрольних груп) з пам'яті.

Враховуючи це, важливо зазначити, що cgroups посилається на особливість ядра Linux, що дозволяє обмежувати, рахувати та ізолювати використання системних ресурсів (процесор, пам’ять, використання диска тощо) та термін «сторінка плити» може бути асимільований процесом розподілу пам'яті за допомогою 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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.