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

Buku Putih Lag Game › L9 Proses game di server

Penumpukan antrean pesan Mailbox / job queue backlog

ID penyebab sp-queue · Penanggung jawab utama Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika permintaan masuk lebih cepat daripada kecepatan pemrosesan dan menumpuk di antrean, permintaan di belakang baru diproses beberapa detik kemudian atau dibuang.

Mengapa Permintaan datang lebih cepat daripada kecepatan pemrosesan → Akibatnya Antrean memanjang, dan permintaan dibuang begitu melewati batas → Di layar Respons skill dan trade terlambat, atau aksinya hilang

Gejala
Input lag, Aksi hilang / rollback
Faktor
Latensi, Packet loss
Siapa yang mengalami
Lokasi/channel tertentu, Fitur tertentu saja
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Pantau panjang antrean, terapkan kebijakan membuang permintaan lama lebih dulu, paralelkan pemrosesan.
Di grafik
Mendatar di batas · Panjang antrean dan umur pesan tertua, jumlah yang diproses per detik
Yang diperiksa
Periksa panjang setiap antrean, umur pesan tertua, serta jumlah pesan yang masuk, diproses, dan dibuang per detik yang dicatat server. Jika tidak ada metrik di kode, periksa Recv-Q socket game (data yang sudah diterima kernel tetapi belum dibaca proses) dengan ss (atau netstat)
Cocok jika
Selama jumlah yang masuk melebihi jumlah yang diproses, jumlah yang diproses tertahan di satu nilai dan tidak naik lagi, sedangkan panjang dan umur antrean serta jumlah yang dibuang terus bertambah
Tidak cocok jika
Antrean pendek dan umur pesan kecil tetapi respons tetap terlambat: lebih mungkin latensi koneksi atau keterlambatan tick itu sendiri
Sarana pemeriksaan
Log dan metrik server atau klien game
Kasus nyata
CCP Games 2014: Kelebihan beban server dalam pertempuran armada besar HED-GP di EVE Online

Sumber

  1. Avoiding insurmountable queue backlogs AWS
    Amazon Builders' Library. Penumpukan dipantau lewat umur pesan yang menunggu; sistem real-time memproses data baru lebih dulu (mendekati LIFO) dan kadang membuang pesan lama
  2. Site Reliability Engineering, Chapter 22: Addressing Cascading Failures Google
    Jika permintaan datang lebih cepat daripada kecepatan pemrosesan, antrean penuh dan latensi naik; permintaan lama yang sudah tidak berguna dikurangi dengan LIFO atau CoDel sebagai pengganti FIFO
  3. ss(8) — Linux manual page iproute2
    Tool untuk menampilkan statistik socket (informasinya mirip netstat); -p menampilkan proses yang memakai socket
  4. netstat(8) — Linux manual page net-tools
    Recv-Q: jumlah byte di socket yang terhubung yang belum diambil oleh program pengguna

Lihat juga

Lapisan yang sama: L9 Proses game di server

Penyebab di lapisan lain dengan gejala yang sama (Input lag)

Lihat kartu interaktif dengan gambar dan simulasi