Проактивно уплътняване на паметта при Linux води до подобрение до 8 пъти

0
75
Linxu Kernel ядро

Проактивно уплътняване на паметта при Linux води до подобрение до 8 пъти при тестовете.

Още през 2019-а година разработчикът Nitin Gupta започва работа по интересна серия от поправки за Linux ядрото, наречени Proactive Memory Compaction или проактивно уплътняване на паметта.

Той установява, че за някои приложения е нужно разпределянето на почти цялата налична памет под формата на големи страници (hugepages). При работеща система обаче разпределянията с по-голям приоритет може и да не се случат, ако паметта е фрагментирана.

В момента Linux ядрото извършва уплътняване при поискване (on-demand compaction), когато бъдат поискани hugepages. Този подход обаче има един недостатък и това е високата латенция. При проведен експеримент Gupta установява, че с използването на Proactive Memory Compaction Linux ядрото е способно да възстанови силно фрагментирано положение на паметта за под 1 секунда за система с 32GB RAM.

В миналото той е провел и Java тестове с transparent hugepages с изискване за неимоверно много hugepages, при които времето е спаднало от 27 минути до зашеметяващите 3 минути. Според него това показва, че чрез проактивното уплътняване на паметта се помага за разпределянето на големи части от паметта като латенцията се запазва на много ниски стойности.

Сега Nitin Gupta продължава със своята работа и публикува Proactive Memory Compaction PATCH v5, където има още подобрения. Той въвежда нова променлива за конфигуриране, наречена „proactiveness“, която заменя множеството променливи до момента и ще определя агресивността на уплътняването, което се извършва във фонов режим.

Gupta обяснява, че при миналата версия е имало твърде много променливи за настройка и затова той ги е свел само до една, именно proactiveness. Интересен момент при proactiveness е, че стойността, която се задава не е абсолютна, защото тя трудно може да се прецени. Вместо това се задават стойностите low и high, като low отговаря на 100-proactiveness, а high стойността е плюс 10% от low.

Прочетете още:  В DXVK може да се появи поддръжка за Directx 9

Ако работата по Proactive Memory Compaction върви по план, то можем да се надяваме, че ще видим новата имплементация при Linux Kernel 5.8.

Повече за Proactive Memory Compaction PATCH v5 можете да прочетете тук.

0/5 (0 Reviews)