Insinyur Google bulan ini telah mulai memposting tambalan baru untuk subsistem manajemen memori Linux dan komponen terkait untuk fitur yang dijuluki Working Set Reporting.

Fungsi Pelaporan Rangkaian Kerja dibuat dari MGLRU dan ditujukan untuk menangani VM atau wadah dengan komitmen berlebihan dengan lebih baik. Seri tambalan RFC merangkum semuanya sebagai:

Latar Belakang
============
Untuk klien dan server, beban kerja dapat dikemas dengan mesin virtual, wadah kubernetes, atau memcgs. Beban kerja berbeda antara server dan klien.

Pekerjaan server memiliki footprint memori yang lebih dapat diprediksi, dan mengkhawatirkan stabilitas dan performa. Salah satu teknik adalah pengambilan kembali proaktif, yang merebut kembali memori sebelum tekanan memori, dan menunjukkan jumlah memori yang benar-benar bebas pada mesin.

Aplikasi klien lebih meledak dan tidak dapat diprediksi karena bereaksi terhadap interaksi pengguna. Sistem perlu merespons peristiwa menarik dengan cepat, dan waspada terhadap penggunaan energi.

Mesin yang terlalu berkomitmen dapat menskalakan jejak wadah melalui memory.max/high, virtio-balloon, dll.
Perangkat balon adalah mekanisme umum untuk berbagi memori antara VM tamu dan host. Ini sangat berguna dalam skenario multi-VM di mana memori overcommitted dan perubahan dinamis pada ukuran memori VM diperlukan saat beban kerja berubah pada sistem. Perangkat balon sekarang memiliki sejumlah fitur untuk membantu berbagi sumber daya memori secara bijak antara tamu dan tuan rumah (mis. petunjuk halaman gratis, statistik, pelaporan halaman gratis). Untuk program pengontrol host yang bertugas mengoptimalkan sumber daya memori di lingkungan multi-VM, program ini harus menggunakan alat ini untuk menjawab dua pertanyaan konkret:

1. Kapan waktu yang tepat untuk memodifikasi balon?
2. Berapa balon yang harus diganti?

Proyek awal untuk mengembangkan kemampuan”balon otomatis”dilakukan pada tahun 2013. Baru-baru ini, perangkat VIRTIO tambahan telah dibuat (virtio-mem, virtio-pmem) yang menawarkan lebih banyak alat untuk sejumlah kasus penggunaan, masing-masing dengan kelebihan dan kekurangan. Proposal sebelumnya untuk memperluas MGLRU dengan antarmuka set yang berfungsi berfokus pada kasus penggunaan server tetapi tidak berfungsi untuk klien.

Proposal
============
Struktur pelaporan Kumpulan Kerja terpadu yang berfungsi untuk server dan klien. Ini melibatkan histogram per-node pada host, histogram per-memcg, dan ekstensi driver virtio-balloon.

Ada dua cara bekerja dengan pelaporan Working Set: berdasarkan peristiwa dan membuat kueri. Pengontrol host dapat menerima notifikasi dari klaim ulang, yang menghasilkan laporan, atau pengontrol dapat meminta histogram secara langsung.
Patch 1 memperkenalkan mekanisme pelaporan Working Set dan antarmuka host. Lihat bagian Detail untuk
Patch 2 memperluas driver virtio-balloon dengan pelaporan Working Set.
RFC awal dibangun di atas MGLRU dan dimaksudkan sebagai Proof of Concept untuk diskusi dan penyempurnaan. T.J. dan saya bertujuan untuk mendukung LRU aktif/tidak aktif dan estimasi set kerja dari ruang pengguna. Kami sedang mengerjakan skrip demo dan mendapatkan beberapa angka juga.

Selain perubahan manajemen memori kernel Linux, ada QEMU patch untuk VirtIO Balloon untuk menambahkan fitur Working Set Reporting.

“Kasus penggunaan adalah host dengan memori overcommitted dan 1 atau lebih VM. Tujuannya adalah untuk mendapatkan informasi yang tepat waktu dan akurat tentang keseluruhan penggunaan memori untuk mendorong aktivitas reklamasi yang sesuai, karena dalam beberapa penggunaan perangkat klien kasus VM mungkin memerlukan sebagian kecil dari keseluruhan memori untuk jangka waktu tertentu, tetapi kemudian memasuki periode tenang yang menghasilkan sejumlah besar halaman dingin di tamu.

Perangkat balon sekarang memiliki sejumlah fitur untuk membantu dalam berbagi sumber daya memori antara tamu dan tuan rumah (mis. petunjuk halaman gratis, statistik, pelaporan halaman gratis). Seperti yang disebutkan pada slide 12 di [1], balon tidak memiliki mekanisme yang baik untuk mendorong reklamasi cache tamu. Kasus penggunaan kami mencakup cache halaman tipikal serta”cache aplikasi”dengan memori yang harus dibuang pada saat tekanan memori di seluruh sistem. Dalam beberapa kasus, virtio-pmem dapat menjadi metode untuk kontrol host dari cache tamu tetapi ada implikasi keamanan yang tidak diinginkan.”

Dan kemudian ada juga mengusulkan pembaruan spesifikasi VirtIO yang dikirim minggu lalu untuk didiskusikan.

Atau untuk ikhtisar yang lebih mudah tentang fungsi Pelaporan Perangkat Kerja ini, teknisi Google yang terlibat membagikan slide dari pembicaraan LSF/MM/BPF 2023 mereka tentang fitur yang diusulkan ini:

Pemberitahuan mekanisme laporan Working Set Reporting masih dalam pengembangan. Ini tentu akan menarik untuk melihat semua apa yang datang dari inisiatif Pelaporan Perangkat Kerja ini.

Categories: IT Info