Facebook verëffentlecht Patches déi de Slab Memory Controller op Linux verbesseren

Roman Gushchin (e Facebook Software Ingenieur) Enregistrement an Linux Kernel Entwécklung Lëscht, e Set vu Patches fir d'Plack Controller Memory Mapping Applikatioun (e Memory Controller).

Den neie Controller ass bemierkenswäert andeems Dir Plätterchersaccount vum Memory Säitenniveau op de Kernel Objektniveau beweegt, wat et méiglech mécht Plättercher iwwer verschidde Gruppen c ze deelen, anstatt eenzel Plättercher fir all Grupp c ze allocéieren.

De Roman huet fonnt wat hien e "ganz eeschte Feeler" nennt am existente Plack Memory Controller deen zu niddregen Utilisatioun féiert dës Deeg mat Cgroups.

“De richtege Grond firwat de existente Design zu enger niddereger Plackbenotzung féiert ass einfach: Plackesäiten ginn exklusiv vun engem Memory Pool benotzt.

Wann et nëmmen e puer Allocatiounen vun enger gewësser Gréisst vun enger Cgroup gemaach ginn, oder wann et e puer aktiv Objete sinn, nodeems de Cgroup ofgeschaaft gouf, oder d'Cgroup enthält eng eenzeg threaded Applikatioun déi kaum Kernobjekte verdeelt, awer all Kéier eng nei CPU: an all dëse Fäll ass déi doraus resultéierend Plackennotzung ganz niddereg.

Wann kmem Accounting ausgeschalt ass, kann de Kernel gratis Plaz op Platte Säiten fir aner Allocatiounen benotzen. «

Dee proposéierte Slab Memory Controller vum Romano Gushchin am vergaangene Joer war zimlech villverspriechend wéi erhéicht Effizienz vum Gebrauch vun der Plack, reduzéieren der Gréisst vun Erënnerung benotzt fir Platten ëm 30-45% a reduzéiert de Gesamtkärgedächtnisverbrauch wesentlech.

Och déi implementéiert Flecken hunn uginn datt Facebook de Code scho bei der Produktioun op hire Server benotzt a war spuert ~ 650-700MB + fir Front-End Webserver, Datebank Cache an DNS Server, ënner anerem Auszeechnungen.

Duerch d'Reduktioun vun der Unzuel vun net-mobilen Placken gëtt e positiven Effekt och am Feld vun der Reduktioun vun der Gedächtnisfragmentatioun observéiert. Neie Gedächtniskontroller vereinfacht de Code fir d'Rechnungsplack wesentlech an erfuerdert keng komplizéiert Algorithmen fir dynamesch Kreatioun a Läschen vu Plättercher fir all Grupp c.

All Cgroups fir Gedächtnis an der neier Implementatioun benotzen e gemeinsame Satz vu Plättercache, an d'Liewensdauer vu Plättercher ass net méi un d'Liewensdauer vu Gedächtnisbeschränkungen duerch Cgroup festgeluecht.

Déi méi präzis Ressource Comptabilitéit implementéiert am neie Plackecontroller soll d'CPU theoretesch méi lueden, awer an der Praxis sinn d'Differenzen als vernoléisseg erauskomm.

Besonnesch den neie Plätterchauffer gouf zënter e puer Méint op Facebook Server benotzt a Betrieb déi verschidden Aarte vu Chargen handhaben, a bis elo goufe keng bedeitend Regressioune festgestallt.

De Patch enthält e puer semi-onofhängeg Deeler, déi och hir Benotzung ausserhalb vum Memory Memory Controller fannen:

  • De Subpage Load API, deen an der Zukunft benotzt ka ginn fir aner Objeten ze zielen déi net d'Gréisst vun enger Säit sinn, zum Beispill Percpu Allocatiounen
  • D'mem_cgroup_ptr API, wou Indikatoren zu engem memcg gezielt ginn, kënne benotzt ginn fir effizient Reparatur vun aneren Objeten, zB Pagecache.

Zu där selwechter Zäit, et gëtt e wesentleche Réckgang am Gedächtniskonsum- Op e puer Hosten war et méiglech bis zu 1 GB Erënnerung ze spueren, awer dës Indikator hänkt gréisstendeels vun der Natur vun der Belaaschtung of, d'Gesamtgréisst vum RAM, de Betrag vun der CPU an d'Charakteristike fir mam Gedächtnis ze schaffen.

Amplaz e separate Set vu kmem_caches fir all Memory Cgroup ze kreéieren, ginn zwee global Sets benotzt: de Rootset fir net bezeechent an d'Root Group Cgroup Assignatiounen an deen zweete Set fir all aner Aufgaben. Dëst erlaabt d'Liewensdauer Gestioun vun eenzelne kmem_caches vereinfacht.

Schlussendlech, wann Dir interesséiert sidd den neie Set vun 19 Patches ze kennen ass et an der Lëscht Kernpost.


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

Gitt d'éischt fir ze kommentéieren

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.