Facebook julkaisi korjaustiedostoja, jotka parantavat Slab-muistiohjainta Linuxissa

Roman Gushchin (Facebook-ohjelmistoinsinööri) rekisteri Linux-ytimen kehitysluettelossa, joukko korjaustiedostoja levyohjaimen muistikartoitussovellukseen (muistiohjain).

Uusi ohjain on merkittävä siirtämällä laatan kirjanpitoa muistisivujen tasolta ytimen objektien tasolle, mikä mahdollistaa levysivujen jakamisen eri ryhmiin c sen sijaan, että kullekin ryhmälle c kohdennettaisiin erilliset laatan välimuistit.

Roman löysi nykyisessä levymuistisäätimessä sen, mitä hän kutsuu "erittäin vakavaksi virheeksi", mikä johtaa nykyään vähäiseen käyttöasteeseen ryhmien kanssa.

”Todellinen syy, miksi nykyinen muotoilu johtaa vähäiseen levynkäyttöön, on yksinkertainen: levysivuja käyttää yksinomaan muistialue.

Jos ryhmässä on vain muutama tietyn kokoinen allokointi tai jos ryhmän poistamisen jälkeen on jäljellä joitain aktiivisia objekteja, tai ryhmässä on yksi langoitettu sovellus, joka tuskin kohdistaa ytimen objekteja, mutta joka kerta uusi CPU: Kaikissa näissä tapauksissa seurauksena oleva levyn käyttöaste on hyvin alhainen.

Jos kmem-kirjanpito on poistettu käytöstä, ydin voi käyttää levysivuilla olevaa vapaata tilaa muihin allokointeihin. «

Ehdotettu levyn muistiohjain Romano Gushchinin kirjoittama kulunut vuosi oli varsin lupaava lisää tehokkuutta laatan käytöstä, pienennä käytetyn muistin kokoa levylle 30-45% ja vähentää merkittävästi ytimen muistin kulutusta.

Myös, toteutetut korjaustiedostot ovat osoittaneet että Facebook käyttää koodia jo tuotannossa palvelimillaan ja oli säästää ~ 650-700 Mt + käyttöliittymän verkkopalvelimille, tietokannan välimuisti ja DNS-palvelimet, muun muassa palkintoja.

Vähentämällä ei-liikkuvien laattojen määrää, positiivinen vaikutus havaitaan myös muistin pirstoutumisen vähentämisen alalla. Uusi muistiohjain yksinkertaistaa merkittävästi kirjanpitolevyn koodia ja se ei vaadi monimutkaisia ​​algoritmeja levyjen välimuistien dynaamiseen luomiseen ja poistamiseen jokaiselle ryhmälle c.

Uuden toteutuksen kaikki muistin c-ryhmät käyttävät yhteistä levyvälimuistia, eikä levyjen välimuistien käyttöikä ole enää sidottu cgroupin kautta asetettujen muistirajoitusten elinaikaan.

Uuden levyohjaimen tarkemman resurssilaskennan pitäisi teoriassa ladata CPU: ta enemmän, mutta käytännössä erot osoittautuivat merkityksettömiksi.

Erityisesti uutta levyäjuria on käytetty useita kuukausia Facebook-palvelimilla toiminnassa, joka käsittelee erityyppisiä kuormia, eikä toistaiseksi ole havaittu merkittäviä regressioita.

Laastari sisältää pari puoliksi itsenäistä osaa, jotka löytävät niiden käytön myös laatan muistin ohjaimen ulkopuolella:

  • Alisivun lataussovellusliittymä, jota voidaan käyttää jatkossa laskemaan muita objekteja, jotka eivät ole sivun kokoa, esimerkiksi percpu-allokaatiot
  • Mem_cgroup_ptr -sovellusliittymää, jossa osoitteet lasketaan muistiin, voidaan käyttää uudelleen muiden objektien, esimerkiksi pagecache, tehokkaaseen korjaamiseen.

Samalla muistin kulutus vähenee merkittävästi- Joissakin isännissä oli mahdollista säästää jopa 1 Gt muistia, mutta tämä indikaattori riippuu suurelta osin kuorman luonteesta, RAM-muistin koko, suorittimen määrä ja muistin kanssa työskentelyn ominaisuudet.

Sen sijaan, että luodaan erillinen kmem_cache-joukko kullekin muistiryhmälle, käytetään kahta globaalia joukkoa: pääjoukko laskemattomille ja juuriryhmän ryhmäryhmille ja toinen joukko kaikille muille tehtäville. Tämä mahdollistaa yksittäisten kmem_cache-laitteiden käyttöiän hallinnan yksinkertaistamisen.

Lopuksi, jos olet kiinnostunut tietämään uuden 19-korjaustiedostosarjan, se löytyy luettelosta ytimen posti.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.