Facebookin uusi muistinhallintamenetelmä

Yksi sosiaalisen verkoston kehitystiimin jäsenistä Facebook, Roman Gushchin, ehdotti kehittäjän postituslistalla joukon Linux-ytimen korjauksettavoitteena on parantaa muistinhallintaa ottamalla käyttöön uusi muistinhallintaohjain - laatta (levymuistiohjain).

laatan jakelu on muistinhallintamekanismi, joka on suunniteltu varaamaan muistia tehokkaammin ja poistamaan merkittävää pirstoutumista. Tämän algoritmin perustana on tallentaa varattu muisti, joka sisältää tietyn tyyppisen objektin, ja käyttää sitä uudelleen seuraavan kerran, kun se varataan samantyyppiselle objektille. Tämän tekniikan esitteli ensimmäisenä SunOS:ssä Jeff Bonwick, ja sitä käytetään nykyään laajalti useiden Unix-käyttöjärjestelmien ytimissä, mukaan lukien FreeBSD ja Linux.

Uusi ohjain perustuu laattakirjanpidon siirtämiseen muistisivutasolta ytimen objektitasolle, mikä mahdollistaa yhden laattasivun jakamisen eri c-ryhmissä sen sijaan, että kullekin cryhmälle varattaisiin erillinen välimuisti.

Testitulosten perusteella voidaan päätellä, että ehdotettu muistinhallintamenetelmä mahdollistaa lisäämisen tehokkuuden laatan avulla on 45%, ja vähentää myös käyttöjärjestelmän ytimen kokonaismuistin kulutusta. Myös vähentämällä laatalle varattujen sivujen määrää muistin pirstoutuminen kokonaisuutena vähenee, mikä ei voi muuta kuin vaikuttaa järjestelmän suorituskykyyn.

Uutta ohjainta on testattu Facebookin tuotantopalvelimilla useiden kuukausien ajan, ja toistaiseksi tätä testausta voidaan kutsua onnistuneeksi: ilman suorituskyvyn heikkenemistä ja virheiden määrän kasvua, muistin kulutuksen on havaittu selkeästi laskeneen - joillain. palvelimet jopa 1 Gt. Tämä luku on melko subjektiivinen, esimerkiksi aikaisemmat testit osoittivat hieman heikompia tuloksia:

  • 650-700 Mt verkkokäyttöliittymässä
  • 750-800 Mt palvelimella tietokantavälimuistilla
  • 700 Mt DNS-palvelimella

>>> Tekijän sivu GitHubissa


>>> Varhaiset testitulokset

Lähde: linux.org.ru

Lisää kommentti