Sebuah patch pada pengalokasi SLUB kernel Linux telah dimasukkan ke dalam antrian sebelum jendela penggabungan Linux 6.10 mendatang untuk membantu mengurangi konsumsi memori dalam skenario ekstrim.
Patch dari insinyur Huawei Chen Jun akan membantu menurunkan konsumsi memori dalam kasus ekstrim. Chen Jun menjelaskan tentang pekerjaannya:
Ketika kmalloc_node() dipanggil tanpa __GFP_THISNODE dan node target kekurangan memori yang cukup, SLUB mengalokasikan folio dari node lain selain node yang diminta, alih-alih mengambil sebagian darinya.
Namun, karena folio yang dialokasikan bukan milik node yang diminta, pada alokasi berikutnya folio tersebut dinonaktifkan dan ditambahkan ke sebagian daftar pelat dari node tempatnya berada.
Perilaku ini dapat mengakibatkan penggunaan memori yang berlebihan ketika node yang diminta memiliki memori yang tidak mencukupi, karena SLUB akan berulang kali mengalokasikan folio dari node lain tanpa menggunakan kembali folio yang telah dialokasikan sebelumnya.
Untuk mencegah pemborosan memori, ketika node pilihan ditunjukkan (bukan NUMA_NO_NODE) tetapi tanpa batasan __GFP_THISNODE sebelumnya:
1) cobalah untuk mendapatkan sebagian lempengan dari node target hanya dengan memiliki __GFP_THISNODE di pc.flags untuk get_partial()
2) jika 1) gagal, coba alokasikan pelat baru dari node target dengan GFP_NOWAIT | __GFP_THISNODE secara oportunis.
3) jika 2) gagal, coba lagi dengan gfpflags asli yang akan memungkinkan get_partial() mencoba sebagian daftar node lain sebelum berpotensi mengalokasikan halaman baru dari node lainSaat menguji pada VM QEMU dengan empat node NUMA yang masing-masing memiliki memori 1GB dan melakukan pengujian sederhana Dalam kasus uji coba, Chen menemukan bahwa jumlah objek yang dialokasikan melalui /proc/slabinfo turun dari 13,519,712 menjadi 4,200,768 objek. Atau hanya 31% dari jumlah asli objek yang dialokasikan seperti yang ditemukan pada kernel Linux saat ini dalam kasus ekstrim ini.
Patch ini ada di cabang "untuk-berikutnya" repositori SLAB.git menjelang jendela penggabungan Linux 6.10 yang akan hadir pada pertengahan Mei.
Itulah berita seputar Optimasi SLUB Linux 6.10 Untuk Mengurangi Konsumsi Memori Dalam Skenario Ekstrim, semoga bermanfaat. Disadur dari Phoronix.com.