Menggunakan Multi-Gen LRU (MGLRU) pada 023 kernel AL2 - Amazon Linux 2023

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Multi-Gen LRU (MGLRU) pada 023 kernel AL2

Multi-Gen LRU adalah algoritma reklamasi halaman modern di kernel Linux, yang dirancang untuk meningkatkan kinerja manajemen memori di bawah tekanan memori. Ini menggantikan mekanisme LRU (Least Recently Used) tradisional yang digunakan untuk menentukan halaman memori mana yang akan diambil kembali ketika sistem kehabisan memori.

Mekanisme LRU tradisional menggunakan model dua daftar (aktif dan tidak aktif) untuk melacak penggunaan halaman, yang dapat menjadi tidak efisien dalam beban kerja modern dengan set kerja besar. MGLRU menggantikan ini dengan beberapa “generasi” halaman, memungkinkan kernel untuk membuat keputusan yang lebih cerdas berdasarkan informasi penuaan yang lebih halus.

Manfaat MGLRU meliputi:

  • Keputusan reklamasi yang lebih baik: Identifikasi halaman dingin (tidak terpakai) yang lebih akurat.

  • Latensi yang lebih rendah dan throughput yang lebih baik: Terutama untuk beban kerja dengan ruang alamat besar atau banyak proses bersamaan.

  • Peningkatan retensi cache: Halaman yang digunakan baru-baru ini cenderung tidak diusir sebelum waktunya.

  • Desain yang dapat diskalakan dan hemat kunci: Berkinerja lebih baik pada mesin dengan banyak. CPUs

Konfigurasi dan Tuning

Konfigurasi kernel CONFIG_LRU_GEN diaktifkan pada AL2 023 kernel. Ini dikompilasi dalam MGLRU tetapi tidak mengaktifkannya secara default.

MGLRU dapat diaktifkan dan disetel menggunakan file. /sys/kernel/mm/lru_gen/enabled Nilainya adalah bitmask. Disarankan untuk mengaktifkan semua komponen kecuali beberapa dari mereka memiliki efek samping yang tidak diinginkan.

Bit Komponen-komponen
0 Sakelar utama untuk LRU multi-gen.
1 Menghapus bit yang diakses dalam entri tabel halaman daun dalam batch besar, saat MMU mengaturnya (misalnya, pada x86). Perilaku ini secara teoritis dapat memperburuk pertentangan kunci (). mmap_lock Jika dinonaktifkan, LRU multi-gen akan mengalami penurunan kinerja kecil untuk beban kerja yang secara bersebelahan memetakan halaman panas, yang bit yang diakses dapat dihapus oleh batch yang lebih sedikit lebih besar.
2 Menghapus bit yang diakses di entri tabel halaman non-daun juga, saat MMU mengaturnya (misalnya, pada x86). Perilaku ini tidak diverifikasi pada varietas x86 selain Intel dan AMD. Jika dinonaktifkan, LRU multi-gen akan mengalami penurunan kinerja yang dapat diabaikan.
[yYnN] Enable/disable semua komponen di atas.

Contoh bagaimana MGLRU dapat diaktifkan:

[ec2-user ~]$ echo y >/sys/kernel/mm/lru_gen/enabled

Ini memungkinkan semua komponen:

[ec2-user ~]$ cat /sys/kernel/mm/lru_gen/enabled 0x0007