Buku Putih Lag Game › Cari berdasarkan gejala
Slow motion: 24 penyebab dan penanggung jawabnya
Disebut juga: dunia game melambat, semuanya terasa lamban
Buka kamus gejala interaktif dengan gambar →
Semuanya bergerak lambat. Cast skill dan gerakan monster terlihat molor. Tergantung desain servernya, gejala ini juga bisa muncul sebagai patah-patah atau teleport dengan kecepatan yang tetap normal.
Semua pemain di area yang sama melambat bersamaan. Biasanya terjadi di tempat yang ramai pemain.
Server tidak sempat menyelesaikan tick tepat waktu. Koneksinya baik-baik saja, jadi ping yang diukur di luar game tidak berubah; ping di dalam game bisa sedikit naik jika waktu tunggu pemrosesan server ikut terhitung di dalamnya. Periksa lonjakan jumlah pemain, perhitungan jarak pandang, broadcast, dan kekurangan memori.
Penyebab gejala ini
L1 Proses game di klien
L5 Perangkat jaringan data center
L7 OS server (kernel)
- Thread berlebihan dan context switching: Jika jumlah thread jauh melebihi jumlah core, OS menghabiskan CPU hanya untuk menjalankan thread-thread itu secara bergiliran. (Pengembangan server (Tim Pengembang Game))
- CPU throttling di container (kuota CFS): Jika container diberi batas CPU, begitu kuota dalam satu periode (biasanya 100 ms) habis, container dipaksa berhenti selama sisa periode itu (throttling). (Infrastruktur server (Tim Infrastruktur))
- Lonjakan latensi akibat manajemen daya server (C-state, pengaturan frekuensi): Core CPU yang sedang menganggur masuk ke mode hemat daya yang dalam (C-state) dan menurunkan frekuensinya untuk menghemat listrik. Saat paket atau timer datang, core butuh waktu untuk bangun dan menaikkan frekuensi, sehingga pemrosesan paket kecil mendapat tambahan latensi. (Infrastruktur server (Tim Infrastruktur))
- Tugas terjadwal: Kompresi log, backup, dan pemindaian keamanan yang berjalan pada jam yang sama setiap hari menyita CPU dan disk. (Infrastruktur server (Tim Infrastruktur))
- Perubahan performa setelah update OS, kernel, driver, atau firmware: Kode game tidak berubah, tetapi server menjadi lambat sejak OS, kernel, driver, atau firmware server diperbarui. Update bisa mengubah nilai default, scheduler, mitigasi kerentanan CPU (mitigations), dan perilaku driver. (Infrastruktur server (Tim Infrastruktur))
L8 Socket dan protokol
- Pengiriman blocking akibat klien lambat: Jika buffer kirim untuk satu pemain dengan koneksi lambat sudah penuh, lalu server mengirim dengan cara blocking (pemanggilan yang tidak kembali sampai buffer punya ruang), thread server ikut menunggu pemain itu. (Pengembangan server (Tim Pengembang Game))
- Arsitektur I/O blocking: Pada arsitektur yang membuat thread tidak bisa mengerjakan hal lain selama menunggu satu socket, seluruh server makin lambat seiring bertambahnya pemain. (Pengembangan server (Tim Pengembang Game))
L9 Proses game di server
- Tick melewati budget (tick overrun): 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. (Pengembangan server (Tim Pengembang Game))
- Lonjakan perhitungan jarak pandang (AOI, N²): Jika siapa bisa melihat siapa dihitung dengan membandingkan semua pemain satu sama lain, saat jumlah pemain naik 10 kali, perhitungannya naik 100 kali. (Pengembangan server (Tim Pengembang Game))
- Kelebihan beban di area single-thread (hotspot): Pada arsitektur yang menugaskan satu thread untuk setiap area, jika pemain berkumpul di satu tempat, hanya satu core itu yang mencapai 100%. (Pengembangan server (Tim Pengembang Game))
- Lonjakan pathfinding: Jika ratusan monster mengejar pemain secara bersamaan sambil menghitung rute, pemakaian CPU menjadi sangat besar. (Pengembangan server (Tim Pengembang Game))
- Pertempuran terpusat pada satu target (world boss): Jika ratusan pemain menyerang satu boss secara bersamaan, perhitungan untuk boss itu terpusat di satu tempat, dan informasi setiap serangan dikirim ke semua yang melihatnya. (Pengembangan server (Tim Pengembang Game))
- Penumpukan objek (item dan summon yang tidak dibersihkan): Jika item di tanah, summon, dan timer yang sudah selesai tidak dibersihkan dan terus menumpuk, makin lama server menyala, makin banyak pekerjaan di setiap tick. (Pengembangan server (Tim Pengembang Game))
L10 Memori
- Kebocoran memori: Memori yang tidak dibebaskan menumpuk sedikit demi sedikit, lalu beberapa hari kemudian berujung pada GC yang berjalan tanpa henti, swap, atau proses yang dihentikan paksa. (Pengembangan server (Tim Pengembang Game))
- GC thrashing (heap hampir penuh): Jika data hidup mendekati batas heap, GC hampir tidak bisa membebaskan memori setiap kali berjalan, sehingga GC berulang tanpa henti. (Pengembangan server (Tim Pengembang Game))
- Swap: Jika memori kurang dan OS memindahkan sebagiannya ke disk, setiap kali memori itu dipakai, proses harus menunggu disk yang lebih dari 1.000 kali lebih lambat. (Infrastruktur server (Tim Infrastruktur))
- Cache miss: Jika data tersebar di berbagai tempat di memori, CPU harus menunggu setiap kali mengambilnya dari RAM yang lambat. (Pengembangan server (Tim Pengembang Game))
- Fragmentasi memori: Jika alokasi dan pembebasan yang berulang memecah ruang kosong menjadi potongan kecil, proses menahan memori jauh lebih banyak daripada yang benar-benar dipakai. (Pengembangan server (Tim Pengembang Game))
- Akses memori NUMA remote: Pada server dengan dua CPU, akses memori melambat jika thread memakai memori yang terpasang pada CPU seberang. (Infrastruktur server (Tim Infrastruktur))
L11 Disk
- Burst credit disk cloud habis: Sebagian disk cloud dan spesifikasi server kecil punya burst credit yang memungkinkan kinerja di atas baseline untuk sementara. Jika masa sibuk berlangsung lama dan kreditnya habis, kecepatannya tiba-tiba turun. (Infrastruktur server (Tim Infrastruktur))
L13 Arsitektur dan operasional server
- Keterlambatan autoscaling: Saat pemain membanjir, server ditambah secara otomatis, tetapi persiapannya butuh beberapa menit, dan selama itu server yang ada kelebihan beban. (Infrastruktur server (Tim Infrastruktur))
- Terlalu banyak macro dan bot: Bot mengirim permintaan jauh lebih sering daripada manusia sehingga menggerogoti throughput server. (Pengembangan server (Tim Pengembang Game))
Lihat kamus gejala interaktif dengan gambar