Нов метод за управление на паметта от Facebook

Един от членов на екипа за разработка на социалната мрежа Facebook, Роман Гущин, предложи в разпространението на разработчиците набор от петна за ядрото на Linux, насочени към подобряване на работата с паметта чрез реализиране на нов контролер за управление на нея — slab (контролер за памет slab).

Разпределение на slab –– е механизъм за управление на паметта, предназначен за по-ефективно разпределение на паметта и премахване на значителна фрагментация. Основата на този алгоритъм е запазването на отделената памет, съдържаща обект от определен тип, и повторното използване на тази памет при следващото отделяне за обект от същия тип. Този метод беше въведен за първи път в SunOS от Джеф Бонвик и сега се използва широко в ядрата на много оперативни системи Unix, включително FreeBSD и Linux.

В основата на новия контролер е прехвърлянето на отчитането на slab от ниво на страници на паметта на ниво на обекти на ядрото, което предоставя възможността за съвместно използване на една slab-страница в различни cgroup, вместо отделно кеширане за всяка cgroup.

Според резултатите от тестовете, предложеното управление на паметта позволява да се увеличи ефективността на използването на slab с до 45%, и също така да се намали общото потребление на паметта от ядрото на ОС. Също така, поради намаляването на броя на отделените страници за slab, се намалява фрагментацията на паметта като цяло, което не може да не се отрази на производителността на системата.

Новият контролер вече се тества на работни сървъри на Facebook в продължение на няколко месеца, и досега това тестване може да се нарече успешно: при отсъствие на загуби в производителността и увеличение на броя на грешките е забелязано явно намаление на разхода на памет — на някои сървъри до 1 ГБ. Това число е доста субективно, така например, преди проведените тестове показаха малко по-ниски резултати:

  • 650-700 МБ на уеб фронтенда
  • 750-800 МБ на сървър с кеш на базата данни
  • 700 МБ на DNS-сървъра

>>> Страничка на автора в GitHub


>>> Резултати от ранните тестове

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster