Facebook nerbitake tambalan sing nambah kontrol memori Slab ing Linux

Roman Gushchin (insinyur perangkat lunak Facebook) pendaptaran ing dhaptar pangembangan kernel Linux, sakumpulan tambalan menyang aplikasi pemetaan memori papan kontrol (kontrol memori).

Kontroler anyar iki luar biasa kanthi mindhah papan akuntansi saka level kaca memori menyang level obyek kernel, saengga bisa nuduhake kaca papan ing macem-macem klompok c, tinimbang menehi cache papan sing kapisah kanggo saben klompok c.

Roman nemokake apa sing diarani "cacat serius" banget ing pengontrol memori papan sing ana sing nyebabake panggunaan kurang saiki karo klompok.

"Alesan nyata desain sing ana saiki nyebabake panggunaan papan sing ringkih iku gampang: kaca papan digunakake kanthi eksklusif ing kolam memori.

Yen mung ana sawetara alokasi ukuran tartamtu sing digawe dening klompok, utawa yen ana sawetara obyek aktif sing ditinggalake sawise klompok kasebut dicopot, utawa klompok kasebut ngemot siji aplikasi utas sing meh ora nyedhiyakake obyek kernel, nanging saben-saben CPU anyar: ing kabeh kasus kasebut, pemanfaatan papan asil sithik banget.

Yen akuntansi kmem dipateni, kernel bisa nggunakake papan gratis ing kaca papan kanggo alokasi liyane. «

Controller memori Slab sing diusulake dening Romano Gushchin ing taun kepungkur cukup janji kaya nambah efisiensi panggunaan papan, nyuda ukuran memori sing digunakake kanggo papan kanthi 30-45% lan nyuda konsumsi memori kernel kanthi signifikan.

Uga tambalan sing dileksanakake wis dituduhake manawa Facebook wis nggunakake kode ing produksi ing server lan nyimpen ~ 650-700MB + kanggo server web ngarep, cache database lan server DNS, kalebu penghargaan liyane.

Kanthi nyuda jumlah papan non-seluler, efek positif uga diamati ing bidang nyuda fragmen memori. Kontrol memori anyar nyederhanakake kode kanggo papan akuntansi lan ora mbutuhake algoritma rumit kanggo nggawe dinamis lan mbusak cache papan kanggo saben klompok c.

Kabeh klompok kanggo memori ing implementasine anyar nggunakake cache cache papan umum, lan umur cache papan ora maneh kaiket ing umur watesan memori sing disetel liwat klompok.

Akuntansi sumber daya sing luwih tepat sing dileksanakake ing papan kontrol papan anyar kanthi teoritis kudu mbukak CPU luwih akeh, nanging ing praktike beda-beda kabukten bisa diabaikan.

Utamane driver papan anyar wis digunakake sawetara wulan ing server Facebook ing operasi sing nangani macem-macem jinis beban, lan nganti saiki durung ana kemunduran sing signifikan.

Tambalan kasebut ngemot sawetara bagean semi-independen, sing uga bisa digunakake ing njaba kontrol memori papan:

  • Subpage Load API, sing bisa digunakake ing mbesuk kanggo ngetung obyek liyane sing dudu ukuran kaca, kayata alokasi percpu
  • API mem_cgroup_ptr, ing endi pointer dietung dadi memcg, bisa digunakake maneh kanggo reparentingake obyek liyane kanthi efisien, kayata pagecache.

Ing wektu sing padha ana nyuda konsumsi memori sing signifikan- Ing sawetara host, bisa ngirit memori nganti 1 GB, nanging indikator iki umume gumantung karo sifat beban, ukuran total RAM, jumlah CPU lan karakteristik nggarap memori.

Tinimbang nggawe sakumpulan kmem_cache sing kapisah kanggo saben klompok memori, digunakake rong set global: root set kanggo tugas sing ora ditemokake lan klompok klompok root lan set liyane kanggo kabeh tugas liyane. Iki nyederhanakake manajemen umur kmem_cache.

Pungkasan, yen sampeyan kepengin ngerti set anyar 19 tambalan, bisa ditemokake ing dhaptar kasebut surat kernel.


Konten artikel kasebut sesuai karo prinsip kita yaiku etika editorial. Kanggo nglaporake klik kesalahan Kene.

Dadi pisanan komentar

Ninggalake komentar sampeyan

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani karo *

*

*

  1. Tanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Kontrol SPAM, manajemen komentar.
  3. Legitimasi: idin sampeyan
  4. Komunikasi data: Data kasebut ora bakal dikomunikasikake karo pihak katelu kajaba kanthi kewajiban ukum.
  5. Panyimpenan data: Database sing dianakake dening Occentus Networks (EU)
  6. Hak: Kapan wae sampeyan bisa matesi, mulihake lan mbusak informasi sampeyan.