한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › L7 OS server (kernel)

Jeda akibat reclaim dan compaction memori Memory compaction / reclaim stalls (THP)

ID penyebab so-reclaim · Penanggung jawab utama Infrastruktur server (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

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)

Gejala
Freeze, Patah-patah
Faktor
Stall
Siapa yang mengalami
Seluruh server
Kapan
Makin lama menyala, Sesekali secara acak
Penanggung jawab
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

  1. Transparent Hugepage Support Linux 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
  2. Documentation for /proc/sys/vm/ Linux kernel
    min_free_kbytes: batas memori kosong minimum (watermark) yang disisakan kernel
  3. PSI - Pressure Stall Information Linux kernel
    some (persentase waktu sebagian tugas berhenti karena menunggu memori) dan full (persentase waktu semua tugas berhenti) di /proc/pressure/memory

Lihat juga

Lapisan yang sama: L7 OS server (kernel)

Penyebab di lapisan lain dengan gejala yang sama (Freeze)

Lihat kartu interaktif dengan gambar dan simulasi