Metode Manajemen Memori Baru Facebook

Salah satu anggota tim pengembangan jaringan sosial Facebook, Romawi Gushchin, diusulkan di milis pengembang satu set Patch kernel Linuxbertujuan untuk meningkatkan manajemen memori melalui penerapan pengontrol manajemen memori baru - lempengan (pengontrol memori lempengan).

distribusi lempengan adalah mekanisme manajemen memori yang dirancang untuk mengalokasikan memori secara lebih efisien dan menghilangkan fragmentasi yang signifikan. Dasar dari algoritma ini adalah untuk menyimpan memori yang dialokasikan yang berisi objek dengan tipe tertentu dan menggunakan kembali memori tersebut pada saat memori tersebut dialokasikan untuk objek dengan tipe yang sama. Teknik ini pertama kali diperkenalkan di SunOS oleh Jeff Bonwick dan sekarang banyak digunakan di kernel banyak sistem operasi Unix, termasuk FreeBSD dan Linux.

Pengontrol baru ini didasarkan pada pemindahan penghitungan pelat dari tingkat halaman memori ke tingkat objek kernel, yang memungkinkan untuk berbagi satu halaman pelat di cgroup yang berbeda, alih-alih mengalokasikan cache terpisah untuk setiap cgroup.

Berdasarkan hasil pengujian, metode manajemen memori yang diusulkan memungkinkan peningkatan efektivitas menggunakan lempengan untuk 45%, dan juga akan mengurangi konsumsi memori kernel OS secara keseluruhan. Selain itu, dengan mengurangi jumlah halaman yang dialokasikan untuk lempengan, fragmentasi memori secara keseluruhan berkurang, yang tidak dapat tidak mempengaruhi kinerja sistem.

Pengontrol baru telah diuji pada server produksi Facebook selama beberapa bulan, dan sejauh ini pengujian ini dapat disebut berhasil: tanpa kehilangan kinerja dan tidak ada peningkatan jumlah kesalahan, penurunan nyata dalam konsumsi memori telah terlihat - pada beberapa server hingga 1GB. Angka ini cukup subyektif, misalnya pengujian sebelumnya menunjukkan hasil yang sedikit lebih rendah:

  • 650-700 MB di antarmuka web
  • 750-800 MB di server dengan cache database
  • 700 MB di server DNS

>>> Halaman penulis di GitHub


>>> Hasil tes awal

Sumber: linux.org.ru

Tambah komentar