ID penyebab sp-tick-overrun · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Jika pekerjaan dalam satu tick melewati tick budget (batas waktu per tick), interval tick server memanjang, dan seluruh area itu berjalan lambat atau patah-patah.
Mengapa Pekerjaan yang harus diproses dalam satu tick (misalnya 50 ms) melewati budget → Akibatnya State game yang seharusnya dihitung 20 kali per detik hanya dihitung 8 kali → Di layar Seluruh area itu slow motion (atau patah-patah, tergantung desain server), respons skill terlambat
Saat banyak pemain berkumpul, Jam sibuk malam hari
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Kurangi komputasi yang mahal, bagi tick ke beberapa thread, sebar pemain (channel), catat waktu pemrosesan tick sebagai metrik.
Tugas Tim Infrastruktur
Tambahkan waktu tick dan utilisasi CPU per core ke monitoring dan alert, pertimbangkan CPU atau instance dengan performa single-core (clock) tinggi.
Kisaran angka
Budget server 20 tick adalah 50 ms, server 30 tick 33 ms, dan server 60 tick 16,7 ms. Untuk berjaga-jaga saat beban tiba-tiba melonjak, lebih aman menyisakan ruang dengan hanya memakai sekitar separuh budget di waktu biasa.
Di grafik
Naik mengikuti beban · Waktu tick server, jumlah pemain per zona dan channel, CPU thread game
Yang diperiksa
Tampilkan waktu pemrosesan tick (p99) dan jumlah tick overrun yang dicatat server dalam satu grafik dengan jumlah pemain per zona dan channel. Jika tidak ada metrik tick, periksa utilisasi CPU satu thread game dengan pidstat -t 1
Cocok jika
Saat pemain berkumpul, waktu tick melewati budget (50 ms untuk server 20 tick), dan selama itu utilisasi CPU thread game menempel di dekat 100%
Tidak cocok jika
Tick melewati budget tetapi CPU thread game rendah: penyebabnya sesuatu yang ditunggu (jeda GC, lock, pemanggilan sinkron). Latensi run queue di bcc runqlat panjang: thread tidak mendapat jatah CPU, jadi lebih mungkin CPU kurang atau thread berlebihan
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Wujud tick yang terlambat berbeda menurut desain server. Server yang memajukan state game sebesar waktu tetap (misalnya 50 ms) setiap tick membuat waktu game itu sendiri melambat, sehingga terjadi slow motion. Server yang menggerakkan objek sekaligus sebesar waktu yang benar-benar berlalu tetap menjaga kecepatan jalannya game, tetapi paket menjadi jarang dan gerakannya melompat besar, sehingga terlihat patah-patah atau teleport. Pada kedua cara itu, respons input tetap terlambat. Jika satu thread game menangani seluruh server, seluruh server melambat; jika thread dibagi per area, hanya area itu yang melambat. Ada juga game seperti EVE Online yang sengaja memperlambat waktu game hingga 10 kali (Time Dilation) dalam pertempuran besar agar komputasi bisa mengejar.
VALORANT's 128-Tick ServersRiot Games Server 128 tick harus menyelesaikan satu frame dalam 7,8125 ms; frame time server diukur per subsistem dan budget-nya dibagi lalu dikelola
HED-GP Technical Retrospective: What a HED-acheCCP Games Saat kelebihan beban, EVE Online memperlambat waktu game dengan Time Dilation dengan batas bawah 10% (10 kali lebih lambat); di waktu biasa, CPU node di bawah 80%
Handling variation in timeUnity Jika simulasi berinterval tetap tertinggal, langkah pengejaran dijalankan bertumpuk, dan waktu yang melewati batas dibuang sehingga waktu game berjalan lebih lambat dari waktu nyata
pidstat(1) — Linux manual pagesysstat -t menampilkan sekaligus statistik per thread milik proses (utilisasi CPU dan lainnya)