Facebook parantos ngajukeun mékanisme manajemén mémori slab énggal pikeun kernel Linux

Roman Gushchin (Roman Gushchin) ti Facebook diterbitkeun dina milis pamekar kernel Linux Ubuntu susunan patch kalawan palaksanaan a alokasi memori controller anyar papak (slab mémori controller). Controller anyar kasohor pikeun mindahkeun akuntansi slab tina tingkat halaman mémori ka tingkat obyék kernel, anu ngamungkinkeun pikeun ngabagi halaman slab dina cgroup anu béda, tibatan ngalokasikeun cache slab anu misah pikeun tiap cgroup.

Pendekatan anu diusulkeun ngamungkinkeun pikeun ningkatkeun efisiensi ngagunakeun slab, ngirangan ukuran mémori anu dianggo pikeun slab ku 30-45%, sareng sacara signifikan ngirangan konsumsi mémori tina kernel. Ku ngurangan jumlah slabs non-movable, aya ogé pangaruh positif dina ngurangan fragméntasi memori. The memori controller anyar nyata simplifies kodeu keur akuntansi pikeun slabs sarta teu merlukeun pamakéan algoritma pajeulit pikeun dinamis nyieun tur mupus caches slab pikeun tiap cgroup. Kabéh cgroups memori dina palaksanaan anyar ngagunakeun susunan umum tina caches slab, sarta hirupna caches slab geus euweuh dihijikeun ka hirupna maranéhanana dipasang ngaliwatan cgroup nu. larangan on pamakéan memori.

Akunting sumberdaya anu langkung akurat dilaksanakeun dina controller slab énggal sacara téoritis kedah ngamuat CPU langkung seueur, tapi dina praktékna bédana tétéla teu pati penting. Dina sababaraha hal, controller slab anyar geus dipaké pikeun sababaraha bulan dina produksi server Facebook nanganan tipena béda workload, sarta euweuh regressions noticeable acan geus pasti. Dina waktos anu sami, aya pangurangan anu signifikan dina pamakean mémori - dina sababaraha host kamungkinan pikeun ngahémat mémori dugi ka 1GB, tapi indikator ieu gumantung pisan kana sifat beban, ukuran total RAM, jumlah CPU. jeung fitur gawé bareng memori. tés saméméhna nunjukkeun ngurangan konsumsi memori ku 650-700 MB (42% memori slab) dina web hareup-tungtung, 750-800 MB (35%) dina server kalawan cache DBMS na 700 MB (36%) dina server DNS.

sumber: opennet.ru

Tambahkeun komentar