Facebook zaproponował nowy mechanizm zarządzania pamięcią slab dla jądra Linux

Roman Gushchin (Roman Gushchin) z firmy Facebook opublikował w newsletterze dla deweloperów jądra Linux zestaw poprawek implementujących nowy kontroler zarządzania pamięcią slab (kontroler pamięci slab). Nowy kontroler wyróżnia się przeniesieniem rozrachunków slab z poziomu stron pamięci na poziom obiektów jądra, co pozwala na wspólne wykorzystanie stron slab w różnych cgroup, zamiast przydzielania oddzielnych podzespołów slab dla każdej cgroup.

Proponowane podejście pozwala zwiększyć efektywność wykorzystania slab, zmniejszając o 30-45% rozmiar używanej pamięci dla slab oraz znacznie zmniejszając całkowite zużycie pamięci przez jądro. Dzięki redukcji liczby nieprzenoszalnych slab osiągnięto również pozytywny efekt w zakresie zmniejszenia fragmentacji pamięci. Nowy kontroler pamięci znacznie upraszcza kod odpowiedzialny za rozrachunki slab i nie wymaga stosowania skomplikowanych algorytmów dynamicznego tworzenia i usuwania podzespołów slab dla każdej cgroup. Wszystkie cgroup dla pamięci w nowej implementacji korzystają z ogólnego zestawu podzespołów slab, a czas życia podzespołów slab nie jest już związany z czasem życia ustalonymi przez cgroup ograniczeń na wykorzystanie pamięci.

Zrealizowane w nowym kontrolerze slab dokładniejsze rozrachunki zasobów teoretycznie powinny bardziej obciążać CPU, ale w praktyce różnice okazały się nieistotne. W szczególności nowy kontroler slab jest już od kilku miesięcy używany na serwerach roboczych Facebooka, przetwarzających różne rodzaje obciążenia, i jak dotąd nie wykryto istotnych regresji. Obserwuje się jednak znaczne zmniejszenie zużycia pamięci — w niektórych hostach udało się zaoszczędzić do 1GB pamięci, ale wskaźnik ten silnie zależy od charakteru obciążenia, całkowitego rozmiaru RAM, liczby CPU i specyfiki pracy z pamięcią. Wcześniejsze testy pokazaliśmy odnotowały zmniejszenie zużycia pamięci o 650-700 MB (42% od pamięci slab) na frontendzie webowym, 750-800 MB (35%) na serwerze z pamięcią podręczną bazy danych oraz 700 MB (36%) na serwerze DNS.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster