Kaedah Pengurusan Memori Baharu Facebook

Salah seorang ahli pasukan pembangunan rangkaian sosial Facebook, Roman Gushchin, dicadangkan dalam senarai mel pembangun satu set Tampalan kernel Linuxbertujuan untuk meningkatkan pengurusan ingatan melalui pelaksanaan pengawal pengurusan ingatan baharu - papak (pengawal memori papak).

pengedaran papak ialah mekanisme pengurusan memori yang direka untuk memperuntukkan memori dengan lebih cekap dan menghapuskan pemecahan yang ketara. Asas algoritma ini adalah untuk menyimpan memori yang diperuntukkan yang mengandungi objek jenis tertentu dan menggunakan semula memori itu pada kali berikutnya ia diperuntukkan untuk objek jenis yang sama. Teknik ini mula-mula diperkenalkan dalam SunOS oleh Jeff Bonwick dan kini digunakan secara meluas dalam kernel banyak sistem pengendalian Unix, termasuk FreeBSD dan Linux.

Pengawal baharu adalah berdasarkan memindahkan perakaunan papak dari peringkat halaman memori ke peringkat objek kernel, yang memungkinkan untuk berkongsi satu halaman papak dalam cgroup yang berbeza, dan bukannya memperuntukkan cache yang berasingan untuk setiap cgroup.

Berdasarkan keputusan ujian, kaedah pengurusan memori yang dicadangkan membolehkan peningkatan keberkesanan menggunakan papak untuk 45%, dan juga akan mengurangkan penggunaan memori keseluruhan kernel OS. Selain itu, dengan mengurangkan bilangan halaman yang diperuntukkan untuk papak, pemecahan memori secara keseluruhan dikurangkan, yang tidak boleh tidak menjejaskan prestasi sistem.

Pengawal baru telah diuji pada pelayan Facebook pengeluaran selama beberapa bulan, dan setakat ini ujian ini boleh dipanggil berjaya: tanpa kehilangan prestasi dan tiada peningkatan dalam bilangan ralat, penurunan jelas dalam penggunaan memori telah diperhatikan - pada beberapa pelayan sehingga 1GB. Nombor ini agak subjektif, sebagai contoh, ujian terdahulu menunjukkan keputusan yang lebih rendah sedikit:

  • 650-700 MB pada bahagian hadapan web
  • 750-800 MB pada pelayan dengan cache pangkalan data
  • 700 MB pada pelayan DNS

>>> Halaman pengarang di GitHub


>>> Keputusan ujian awal

Sumber: linux.org.ru

Tambah komen