Proses berhenti selama OS memadatkan memori (compaction) untuk membuat halaman besar (huge page) atau mengambil kembali memori (reclaim) agar tersedia ruang kosong.
Mengapa Memori kosong menipis, atau fitur halaman besar (THP) menjalankan compaction memori → Akibatnya Thread yang meminta memori menunggu sampai reclaim dan compaction selesai → Di layar Server berhenti secara tidak teratur (beberapa ms hingga ratusan ms)
Penanggung jawab utama Infrastruktur server (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Kurangi alokasi memori besar saat server berjalan (alokasikan lebih dulu saat startup lalu pakai ulang).
Tugas Tim Infrastruktur
Atur halaman besar (THP) agar hanya dipakai di tempat yang membutuhkannya (madvise), naikkan batas memori kosong (vm.min_free_kbytes dan lainnya).
Di grafik
Melonjak acak sesekali · Waktu tick server, PSI memori
Yang diperiksa
Periksa some dan full di /proc/pressure/memory (persentase waktu berhenti karena menunggu memori) serta kenaikan compact_stall di /proc/vmstat bersama waktu tick server, lalu periksa pengaturan /sys/kernel/mm/transparent_hugepage/defrag
Cocok jika
PSI memori naik dan compact_stall bertambah saat tick melonjak. defrag bernilai always
Tidak cocok jika
PSI dan compact_stall tidak berubah: bukan penyebab ini. Pemakaian swap naik: lebih mungkin “Swap”
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Sumber
Transparent Hugepage SupportLinux kernel Jika defrag=always, saat alokasi THP gagal, reclaim dan compaction memori dilakukan saat itu juga sehingga proses berhenti; madvise hanya melakukannya untuk area yang memintanya
PSI - Pressure Stall InformationLinux kernel some (persentase waktu sebagian tugas berhenti karena menunggu memori) dan full (persentase waktu semua tugas berhenti) di /proc/pressure/memory