Нов метод за управление на паметта от 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