ID penyebab rt-burst · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Infrastruktur jaringan (Tim Infrastruktur)
Jika setiap tick server mengirim update untuk ribuan pemain sekaligus dalam sekejap, buffer kecil di switch atau batas sesaat di cloud meluap dalam waktu kurang dari 1 ms dan sebagian paket dibuang.
Mengapa Paket untuk semua pemain dikirim sekaligus tepat saat tick dimulai → Akibatnya Buffer port switch tempat trafik banyak server berkumpul (ratusan KB hingga beberapa MB per port) atau batas instance cloud meluap sesaat (utilisasi rata-rata tetap rendah) → Di layar Banyak pemain teleport atau tersendat sesaat secara bersamaan, penyebabnya tidak terlihat dari metrik rata-rata
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Infrastruktur jaringan (Tim Infrastruktur)
Tugas Tim Pengembang Game
Sebar pengiriman satu tick di sepanjang durasi tick (lonjakan ribuan koneksi di awal tick sulit diatasi dengan pacing per koneksi), sebar waktu mulai tick antarserver, batasi kecepatan koneksi yang mengirim data besar dengan SO_MAX_PACING_RATE.
Tugas Tim Infrastruktur
Server/OS: batasi laju kirim total server (shaper di OS server, tc di Linux), ratakan burst dari satu koneksi dengan pacing (qdisc fq di Linux, BBR). Jaringan: pakai switch dengan buffer besar, periksa counter drop output port switch dengan interval pendek (tidak terlihat dari utilisasi rata-rata).
Kisaran angka
Port 10 Gbps bisa mengirim sekitar 1,25 MB dalam 1 ms. Jika tick dari beberapa server bertepatan dan trafiknya terkumpul di satu port, buffer penuh dalam sekejap.
Di grafik
Naik mengikuti beban · Jumlah drop output port switch, tingkat retransmisi
Yang diperiksa
Kumpulkan drop output (ifOutDiscards) di port switch tempat server terhubung dan port di atasnya setiap beberapa detik; di cloud, periksa bw_out_allowance_exceeded dan pps_allowance_exceeded di ethtool -S. Kumpulkan retransmisi pada saat yang sama dengan bcc tcpretrans, lalu cocokkan
Cocok jika
Utilisasi rata-rata per menit rendah, tetapi drop output atau allowance yang terlampaui bertambah, dan jumlahnya membesar mengikuti CCU dan jumlah pemain yang berkumpul di satu tempat. Retransmisi tidak terpusat pada rentang IP pemain tertentu (ISP atau wilayah) dan muncul di banyak koneksi server itu pada saat yang sama
Tidak cocok jika
Error CRC dan error input di port yang sama ikut naik: lebih mungkin “Error fisik”. Counter drop NIC atau softnet dropped di server penerima naik: lebih mungkin “Paket dibuang di host server penerima”
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Pacing bekerja per koneksi. Lonjakan saat ribuan koneksi masing-masing mengirim satu atau dua paket di awal tick sulit diatasi dengan pacing per koneksi, sehingga server game sendiri harus menyebar waktu pengirimannya. Sebaliknya, saat satu koneksi mengirim data besar, NIC memotong data puluhan KB menjadi seukuran paket lalu mengirimnya beruntun (TSO), dan burst seperti ini bisa diratakan dengan baik oleh pacing.
RFC 2863: The Interfaces Group MIBIETF ifOutDiscards: jumlah paket keluar yang dibuang tanpa dikirim walaupun tidak ada error, misalnya untuk mengosongkan ruang buffer