Noua metodă de gestionare a memoriei de la Facebook

Unul dintre membrii echipei de dezvoltare a rețelei sociale Facebook, Roman Gushchin, a propus în lista de corespondență a dezvoltatorilor un set de patch-uri pentru kernelul Linux, destinate îmbunătățirii gestionării memoriei prin implementarea unui nou controler pentru aceasta — slab (controler de memorie slab).

Distribuția slab — este un mecanism de gestionare a memoriei, destinat unei distribuții mai eficiente a memoriei și eliminării fragmentării semnificative. Baza acestui algoritm este păstrarea memoriei alocate, care conține un obiect de un anumit tip, și reutilizarea acestei memorii la următoarea alocare pentru un obiect de același tip. Această metodă a fost introdusă pentru prima dată în SunOS de Jeff Bonwick și este acum folosită pe scară largă în nucleele multor sisteme de operare Unix, inclusiv FreeBSD și Linux.

La baza noului controler se află transferul contabilizării slab de la nivelul paginilor de memorie la nivelul obiectelor nucleului, ceea ce permite utilizarea comună a unei pagini slab în diferite cgroup-uri, în loc de alocarea unui cache separat pentru fiecare cgroup.

Conform rezultatelor testelor, se pare că metoda propusă de gestionare a memoriei permite creșterea eficienței utilizării slab până la 45%, precum și reducerea consumului total de memorie al nucleului sistemului de operare. De asemenea, prin reducerea numărului de pagini alocate pentru slab, se reduce fragmentarea memoriei în general, ceea ce nu poate decât să influențeze performanța sistemului.

Noul controler este testat deja de câteva luni pe serverele de producție ale Facebook, și până acum acest test poate fi considerat de succes: fără pierderi în performanță și o creștere a numărului de erori, s-a observat o reducere clară a consumului de memorie — pe unele servere de până la 1GB. Această cifră este destul de subiectivă, de exemplu, testele anterioare au arătat rezultate ceva mai mici:

  • 650-700 MB pe front-end-ul web
  • 750-800 MB pe serverul cu cache de baze de date
  • 700 MB pe serverul DNS

>>> Pagina autorului pe GitHub


>>> Rezultatele testelor anterioare

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster