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

Buku Putih Lag Game › L9 Proses game di server

Kelebihan beban di area single-thread (hotspot) Single-threaded hot zone

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

Buka kartu interaktif dengan gambar dan simulasi →

Pada arsitektur yang menugaskan satu thread untuk setiap area, jika pemain berkumpul di satu tempat, hanya satu core itu yang mencapai 100%.

Mengapa Satu area (channel) ditangani oleh satu thread → Akibatnya Jika pemain berkumpul di satu tempat, hanya core itu yang jenuh, sedangkan core lain masih longgar → Di layar Hanya area itu yang lag, area lain normal

Gejala
Slow motion, Input lag
Faktor
Stall
Siapa yang mengalami
Lokasi/channel tertentu
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Sebar ke beberapa channel, paralelkan pemrosesan di dalam area, batasi jumlah pemain.
Tugas Tim Infrastruktur
Tambahkan utilisasi CPU per core ke monitoring dan alert (satu core yang jenuh tertutup oleh rata-rata seluruh server).
Kisaran angka
Di server 16 core, walaupun satu core 100%, utilisasi CPU seluruh server hanya terlihat sekitar 6%. Masalah ini baru ketahuan jika utilisasi per core diperiksa.
Di grafik
Naik mengikuti beban · Utilisasi CPU per core, CPU per thread
Yang diperiksa
Periksa utilisasi per core dengan mpstat -P ALL 1 dan CPU per thread proses game dengan pidstat -t 1, lalu bandingkan dengan jumlah pemain di zona yang ditangani thread tersibuk
Cocok jika
CPU seluruh server rendah, tetapi hanya satu thread (satu core) yang menempel di dekat 100%, dan pada saat itu pemain berkumpul di zona yang ditangani thread tersebut
Tidak cocok jika
Beberapa core tinggi secara merata: kelebihan beban seluruh server. Hanya %soft (pemrosesan paket masuk) di satu core yang tinggi: lebih mungkin interrupt NIC terpusat di satu core
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Area lain tetap normal hanya jika tick dijalankan terpisah per area. Jika thread-thread area saling menunggu setiap tick lalu bersama-sama maju ke tick berikutnya, satu area yang paling sibuk memperlambat tick seluruh server.
Kasus nyata
CCP Games 2014: Kelebihan beban server dalam pertempuran armada besar HED-GP di EVE Online

Sumber

  1. Time Dilation – How’s That Going? CCP Games
    Time Dilation di EVE Online berlaku per node, sehingga sistem bintang jauh yang berada di node yang sama ikut melambat; pertempuran besar diproses di node yang diperkuat yang hanya memuat 4 sistem bintang
  2. mpstat(1) — Linux manual page sysstat
    Menampilkan utilisasi per prosesor dan rata-rata keseluruhan secara terpisah (-P ALL); %soft adalah persentase waktu untuk memproses software interrupt
  3. pidstat(1) — Linux manual page sysstat
    -t menampilkan sekaligus statistik per thread milik proses (utilisasi CPU dan lainnya)

Lihat juga

Lapisan yang sama: L9 Proses game di server

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

Lihat kartu interaktif dengan gambar dan simulasi