Nowa metoda zarządzania pamięcią na Facebooku

Jeden z członków zespołu tworzącego sieć społecznościową Facebook, Roman Guszczin, zaproponowany na liście mailingowej dewelopera zestaw Poprawki na jądro Linuksamające na celu poprawę zarządzania pamięcią poprzez wdrożenie nowego kontrolera zarządzania pamięcią - płyta (kontroler pamięci płyty).

rozkład płyt to mechanizm zarządzania pamięcią, zaprojektowany w celu efektywniejszej alokacji pamięci i eliminowania znacznej fragmentacji. Podstawą tego algorytmu jest przechowywanie przydzielonej pamięci zawierającej obiekt określonego typu i ponowne wykorzystanie tej pamięci przy następnym przydzieleniu jej dla obiektu tego samego typu. Technika ta została po raz pierwszy wprowadzona w systemie SunOS przez Jeffa Bonwicka i jest obecnie szeroko stosowana w jądrach wielu systemów operacyjnych Unix, w tym FreeBSD i Linux.

Nowy kontroler opiera się na przeniesieniu rozliczania bloków z poziomu strony pamięci na poziom obiektu jądra, co umożliwia współdzielenie jednej strony bloków w różnych grupach, zamiast przydzielania osobnej pamięci podręcznej dla każdej grupy.

Z wyników badań wynika, że ​​zaproponowana metoda zarządzania pamięcią pozwala na jej zwiększenie skuteczność za pomocą płyty do 45%, a także zmniejszy ogólne zużycie pamięci jądra systemu operacyjnego. Ponadto, zmniejszając liczbę stron przydzielonych dla płyty, zmniejsza się fragmentację pamięci jako całości, co nie może nie wpłynąć na wydajność systemu.

Nowy kontroler testowany jest na produkcyjnych serwerach Facebooka od kilku miesięcy i jak na razie testy te można nazwać udanymi: bez utraty wydajności i wzrostu liczby błędów zauważono wyraźny spadek zużycia pamięci – na niektórych serwery do 1 GB. Liczba ta jest dość subiektywna, przykładowo wcześniejsze testy wykazały nieco niższe wyniki:

  • 650-700 MB na interfejsie WWW
  • 750-800 MB na serwerze z pamięcią podręczną bazy danych
  • 700 MB na serwerze DNS

>>> Strona autora na GitHubie


>>> Wczesne wyniki testów

Źródło: linux.org.ru

Dodaj komentarz