Facebook ngaluarkeun tambalan anu ningkatkeun pengendali memori Slab di Linux

Romawi Gushchin (insinyur parangkat lunak Facebook) pendaptaran dina daptar pangwangunan kernel Linux, sakumpulan tambalan kana aplikasi pemetaan mémori slab controller (pangendali mémori).

Controller anyar anu luar biasa ku mindahkeun papan data akuntansi tina tingkat halaman mémori kana tingkat obyék kernel, sahingga mungkin pikeun ngabagi halaman slab ngalangkungan sababaraha kelompok c, tinimbang nyebarkeun cache slab anu terpisah pikeun masing-masing grup c.

Roman mendakan naon anu disebatna "cacat serius pisan" dina papan kontrol mémori papan anu aya anu nyababkeun panggunaan rendah ayeuna-ayeuna ku cgroups.

"Alesan aslina desain anu aya ngarah kana panggunaan slab anu saderhana saderhana: halaman slab dianggo sacara éksklusif ku kolam memori.

Upami ngan ukur aya sababaraha alokasi ukuran anu didamel ku cgroup, atanapi upami aya sababaraha obyék aktif sésana cgroup dipiceun, atanapi cgroup ngandung hiji aplikasi utas anu bieu ngaluarkeun objék kernel, tapi unggal waktos teras CPU anyar: dina sadaya kasus ieu, pemanfaatan papan anu hasilna kirang pisan.

Upami akuntansi kmem ditumpurkeun, kernel tiasa nganggo rohangan bébas dina halaman slab pikeun alokasi sanés. «

Controll mémori Slab anu diusulkeun ku Romano Gushchin dina sataun katukang lumayan ngajanjikeun siga ningkatkeun efisiensi tina panggunaan papan, ngirangan ukuran memori anu dianggo pikeun slab ku 30-45% sareng nyata ngirangan konsumsi memori kernel.

Ogé tambalan dilaksanakeun parantos dituduhkeun yén Facebook parantos ngagunakeun kode dina produksi dina sérverna sareng hemat ~ 650-700MB + pikeun server wéb payun, cache database sareng sérver DNS, diantara penghargaan anu sanés.

Ku ngirangan jumlah papan anu henteu bergerak, épék positip ogé dititénan dina bidang pangurangan fragméntasi. Kontroler mémori anyar sacara signifikan nyederhanakeun kode pikeun papan perakaunan sareng henteu meryogikeun algoritma rumit pikeun nyiptakeun dinamis sareng ngahapus cache papan pikeun tiap kelompok c.

Sadaya cgroups pikeun mémori dina palaksanaan énggal nganggo sét cache slab umum, sareng umur cache slab parantos teu kaiket deui dina umur hambatan memori anu ditetepkeun ngalangkungan cgroup.

Akuntansi sumber daya anu langkung pas anu dilaksanakeun dina slab controller anyar sacara téoritis na ngamuat CPU langkung, tapi dina praktékna bédana tétéla tiasa diabaikan.

Khususna, supir papan anyar parantos dianggo sababaraha bulan dina sérver Facebook dina operasi anu nanganan sababaraha jinis beban, sareng dugi ka ayeuna teu aya régrési anu signifikan anu dideteksi.

Tambalan ngandung sababaraha bagéan semi-mandiri, anu ogé tiasa mendakan panggunaanna di luar kendali mémori slab:

  • Subpage Load API, anu tiasa dianggo ka hareup pikeun ngitung objék sanés anu henteu ukuran halaman, contona alokasi percpu
  • API mem_cgroup_ptr, dimana poin diitung kana memcg, tiasa dianggo deui pikeun reparenting épisién obyék sanés, contona pagecache.

Dina waktos anu aya panurunan penting dina konsumsi mémori- Dina sababaraha host tiasa ngahemat dugi ka 1 GB mémori, tapi indikator ieu kalolobaanana gumantung kana sifat muatanna, ukuran total RAM, jumlah CPU sareng karakteristik damel sareng mémori.

Daripada nyiptakeun sakumpulan kmem_cache misah pikeun unggal kumpulan memori, dua sét global dianggo: root set pikeun henteu kaétang sareng grup cgroup anu ditugaskeun sareng set anu kadua pikeun sadaya tugas sanés. Ieu nyederhanakeun manajemén hirupna kmem_caches individu.

Akhirna, upami anjeun resep terang set anyar 19 tambalan éta tiasa dipendakan dina daptar mail kernel.


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

Janten kahiji komen

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun.

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

bool (leres)