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
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.
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
mpstat(1) — Linux manual pagesysstat Menampilkan utilisasi per prosesor dan rata-rata keseluruhan secara terpisah (-P ALL); %soft adalah persentase waktu untuk memproses software interrupt
pidstat(1) — Linux manual pagesysstat -t menampilkan sekaligus statistik per thread milik proses (utilisasi CPU dan lainnya)