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

Buku Putih Lag Game › L10 Memori

Cache miss CPU cache misses

ID penyebab mem-cache-miss · Penanggung jawab utama Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika data tersebar di berbagai tempat di memori, CPU harus menunggu setiap kali mengambilnya dari RAM yang lambat.

Mengapa Objek tersebar lewat pointer dan diakses tanpa urutan → Akibatnya Data tidak ada di cache CPU sehingga setiap kali harus dibaca dari RAM (sekitar 100 kali lebih lambat) → Di layar Untuk pekerjaan yang sama, biaya tick menjadi beberapa kali lipat; jika parah, terjadi slow motion

Gejala
Slow motion
Faktor
Stall
Siapa yang mengalami
Seluruh server
Kapan
Selalu, Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Letakkan data yang sering dipakai bersama secara berurutan di memori (data-oriented design).
Di grafik
Selalu tinggi sejak awal · Waktu tick, utilisasi CPU
Yang diperiksa
Jalankan perf stat -d -p PID pada proses server game untuk mengukur jumlah instruksi per siklus (insn per cycle) serta cache miss L1 dan LLC, lalu bandingkan dengan waktu tick dan utilisasi CPU
Cocok jika
CPU terus sibuk, tetapi insn per cycle rendah dan LLC miss banyak. Pasti penyebab ini jika build dengan tata letak data yang diubah menurunkan waktu tick secara drastis pada jumlah pemain yang sama
Tidak cocok jika
Utilisasi CPU rendah tetapi tick lambat: lebih mungkin penyebab yang menunggu di luar CPU, seperti lock atau menunggu I/O
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)

Sumber

  1. Designs, Lessons and Advice from Building Large Distributed Systems (LADIS 2009 keynote) Google
    Cache L1 0,5 ns, cache L2 7 ns, main memory 100 ns (data tahun 2009): akses sampai RAM satu atau dua orde besaran lebih lambat daripada cache
  2. perf-stat(1) — Linux manual page perf
    -p menghitung event hardware dari proses yang sedang berjalan dan menampilkan insn per cycle; -d menambahkan event data cache L1 dan LLC

Lihat juga

Lapisan yang sama: L10 Memori

Penyebab di lapisan lain dengan gejala yang sama (Slow motion)

Lihat kartu interaktif dengan gambar dan simulasi