Facebook жадты басқарудың жаңа әдісі

Әлеуметтік желіні дамыту тобының мүшелерінің бірі Facebook, Роман Гущин, әзірлеушінің пошталық тізімінде жиынтықты ұсынады Linux ядросының патчтарыжадты басқарудың жаңа контроллерін енгізу арқылы жадты басқаруды жақсартуға бағытталған - тақта (плита жады контроллері).

плиталарды бөлу жадты тиімдірек бөлуге және елеулі фрагментацияны жоюға арналған жадты басқару механизмі болып табылады. Бұл алгоритмнің негізі белгілі бір типті объекті бар бөлінген жадты сақтау және сол жадты келесі рет бір типті объект үшін бөлінгенде қайта пайдалану болып табылады. Бұл әдісті SunOS жүйесінде алғаш рет Джефф Бонвик енгізді және қазір FreeBSD және Linux сияқты көптеген Unix операциялық жүйелерінің ядроларында кеңінен қолданылады.

Жаңа контроллер тақтаны есепке алуды жад беті деңгейінен ядро ​​нысаны деңгейіне жылжытуға негізделген, бұл әр топ үшін жеке кэш бөлудің орнына бір тақта бетін әртүрлі топтарда ортақ пайдалануға мүмкіндік береді.

Сынақ нәтижелеріне сүйене отырып, ұсынылған жадты басқару әдісі ұлғайтуға мүмкіндік береді тиімділігі плитаны қолдану 45 үшін%, сонымен қатар ОЖ ядросының жалпы жады тұтынуын азайтады. Сондай-ақ, тақтаға бөлінген беттердің санын азайту арқылы тұтастай алғанда жадтың фрагментациясы азаяды, бұл жүйенің өнімділігіне әсер етпеуі мүмкін емес.

Жаңа контроллер Facebook өндірістік серверлерінде бірнеше ай бойы сынақтан өтті және әзірге бұл тестілеуді сәтті деп атауға болады: өнімділікті жоғалтпастан және қателер санының көбеюінсіз, жадты тұтынудың айқын төмендеуі байқалды - кейбіреулерінде 1 ГБ дейінгі серверлер. Бұл сан өте субъективті, мысалы, бұрынғы сынақтар сәл төмен нәтижелерді көрсетті:

  • Веб-фронда 650-700 МБ
  • Дерекқор кэші бар серверде 750-800 МБ
  • DNS серверінде 700 МБ

>>> GitHub-тағы автордың беті


>>> Ерте сынақ нәтижелері

Ақпарат көзі: linux.org.ru

пікір қалдыру