Ядро Linux є основою операційних систем (ОС) Linux і є основним інтерфейсом між апаратним забезпеченням комп’ютера та його процесами.
Кілька днів тому Ми ділимося тут, у блозі, новиною про одну зі змін Що ми можемо знайти на запуску ядра Linux 6.9, який зараз знаходиться в розробці, і про різні зміни вже стало відомо, і ми оголосили, що EXT2 уже перейшов до категорії застарілих, а також що використання старого драйвера NTFS залишиться осторонь на користь драйвер, розроблений Paragon Software.
Тепер в останніх новинах про нові функції, які надасть нам Linux 6.9, це те Ця версія ядра значно покращить час запуску для користувачів, які керують системами з великим об’ємом оперативної пам’яті, особливо тими, що Вони використовують сторінки HugeTLB. Це призводить до значного скорочення часу, необхідного для ініціалізації цих сторінок під час процесу завантаження системи.
І зміни додані в Linux 6.9 дозволить системам із великою кількістю сторінок HugeTLB відчути помітне скорочення у час початку. Наприклад, у системах 2 ТБ, де ініціалізовано 1800 сторінок по 1 ГБ, які зараз вони займають від 1 до 2 секунд із загальних 10 секунд, що, безсумнівно, є значним покращенням у наш час. Подібним чином, на хостах Intel на 12 ТБ, де ініціалізується 11 776 сторінок на 1 ГБ, що може зайняти більше хвилини, ви побачите значне скорочення часу запуску.
Ці аванси стали можливими завдяки відданій роботі розробника Linux Ганга Лі з Bytedance, який реалізував серію патчів, які пройшли численні перевірки, щоб забезпечити ефективне виконання. Існуюча інфраструктура ядра, наприклад padata_do_multithreaded, використовувався з мінімальними модифікаціями для досягнення цих результатів.
Два оновлення у v6…
– Виправлена потенційна помилка в together_bootmem_prealloc_node
Реалізація padata_do_multithreaded гарантує, що кожен
Завдання together_bootmem_prealloc_node обробляє вузол. Однак описаний API
у коментарі padata_do_multithreaded вказує, що padata_do_multithreaded також
Ви можете призначити кілька вузлів для завдання together_bootmem_prealloc_node.Щоб уникнути можливих помилок через майбутні зміни padata_do_multithreaded,
together_bootmem_prealloc_parallel вводиться для обгортання
together_bootmem_prealloc_node.
Переваги з цих покращень особливо помітно в середовищах, де доступність послуг і безвідмовна робота системи є критичними, як у випадку з гіпермасштабувальниками та великими організаціями, які керують дуже великими серверами. Скорочення часу запуску під час перезавантаження є великою перевагою для забезпечення швидшої та ефективнішої роботи.
Крім того, Також варто згадати ще одну зміну які були включені в Linux 6.9, який є виправленням від досвідченого інженера Linux із Intel, який представляє вдосконалену техніку для обмеження пропускної здатності пам’яті при оновленні кешу x86, подібний до того, що використовується Intel у процесорах RDT і AMD EPYC із кодом resctrl.
Автор патча зазначає, що:
Цикл зворотного зв’язку MBA_mbps збільшує обмеження, коли група використовує більшу пропускну здатність, ніж користувач, встановлений у файлі схеми, і зменшує обмеження, коли воно нижче цільового значення.
Варто згадати, що нова методика обмеження пропускної здатності пам'яті призначений для більш ефективної роботи з навантаженнями з нерівномірним рівнем навантаженняs, уникаючи непотрібних штрафів, які мали місце в попередніх версіях ядра.
Щоб уникнути непотрібних коливань у прискоренні на кожній ітерації, прапорець «delta_comp» використовується для вказівки фактичних змін пропускної здатності, які будуть записані на наступній ітерації в «delta_bw». Регулювання зменшується, лише якщо поточна смуга пропускання плюс delta_bw нижча за цільове значення користувача.
Як таке згадується, що Алгоритм добре працює з постійними навантаженнями на пропускну здатність, але це може вийти з ладу, якщо робоче навантаження змінюється саме тоді, коли змінюється регулювання. Щоб вирішити цю проблему, було реалізовано простіший метод, який обчислює потенційне збільшення пропускної здатності, якщо обмеження зменшено до наступного вищого рівня, гарантуючи, що воно залишається нижче цільового значення користувача до зменшення обмеження.
Якщо ви є цікаво дізнатися про це більше, ви можете переглянути деталі за такими посиланнями:
- Hugetlb: Паралелізуйте початок сторінки Hugetlb під час запуску
- Впровадження нової техніки обмеження MBA_mbps