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

Buku Putih Lag Game › L13 Arsitektur dan operasional server

Rute lewat gateway atau proxy Gateway / proxy hop

ID penyebab in-gateway · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Pengembangan klien (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika ada server perantara di antara klien dan server game, setiap kali paket melewatinya ada tambahan waktu pemrosesan, dan server itu menjadi single point of failure.

Mengapa Arsitektur klien ↔ gateway ↔ server game → Akibatnya Ada tambahan pemrosesan dan antrean di server perantara; saat kelebihan beban, semua pemain terdampak → Di layar Ping semua pemain naik; saat gateway mengalami gangguan, semua pemain yang melewatinya disconnect

Gejala
Input lag, Disconnect
Faktor
Latensi, Stall
Siapa yang mengalami
Seluruh server
Kapan
Saat banyak pemain berkumpul, Selalu
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Server: rancang agar gateway bisa ditambah menjadi beberapa unit, dan agar karakter tetap berlanjut saat tersambung ulang ke gateway lain ketika satu gateway mati (penyambungan ulang sesi). Klien: reconnect otomatis saat koneksi ke gateway terputus.
Tugas Tim Infrastruktur
Scale out gateway secara horizontal (tambah unit), pantau CPU, jumlah koneksi, dan latensi pemrosesan per gateway.
Kisaran angka
Karena masih di dalam data center yang sama, biasanya kurang dari 1 ms setiap kali lewat. Jika gateway kelebihan beban, waktunya naik menjadi puluhan hingga ratusan ms.
Di grafik
Naik mengikuti beban · Latensi pemrosesan gateway, CPU dan jumlah koneksi gateway
Yang diperiksa
Periksa CPU dan jumlah koneksi gateway, Recv-Q socket gateway (ss, netstat), serta selisih latensi sebelum dan sesudah melewati gateway. Untuk pemanggilan HTTP atau gRPC yang lewat service mesh, bandingkan metrik standar Istio istio_request_duration_milliseconds yang dipisah antara sisi pengirim (reporter=source) dan sisi penerima (reporter=destination)
Cocok jika
Waktu pemrosesan server game tetap, tetapi hanya latensi di segmen gateway yang naik, dan pada saat itu CPU gateway jenuh atau Recv-Q menumpuk
Tidak cocok jika
Rute yang tidak lewat gateway (koneksi langsung, gateway lain) juga sama lambatnya: lebih mungkin koneksi atau server game
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Jika memakai service mesh (misalnya Istio), sidecar proxy (Envoy) yang menempel di samping setiap server juga menambah satu langkah. Permintaan antarlayanan melewati sidecar di sisi pengirim lalu sidecar di sisi penerima, dan makin banyak fitur yang ditambahkan ke proxy, seperti pengumpulan log dan metrik, makin panjang waktu pemrosesan dan waktu tunggunya.
Kasus nyata
Riot Games 2020: Host edge kelebihan beban di server League of Legends Eropa dan Brasil

Sumber

  1. The Unique Architecture behind Amazon Games’ Seamless MMO New World AWS
    Di New World, klien terhubung ke salah satu dari 4 server pintu masuk (REP) yang memiliki alamat publik, lalu berkomunikasi dengan server simulasi (hub) di belakangnya
  2. Designs, Lessons and Advice from Building Large Distributed Systems Google
    Keynote LADIS 2009 (Jeff Dean). Round trip di dalam data center yang sama sekitar 0,5 ms
  3. Site Reliability Engineering, Chapter 22: Addressing Cascading Failures Google
    Jika antrean memanjang akibat kelebihan beban, waktu tunggu naik menjadi beberapa kali waktu pemrosesan (pemrosesan 100 ms dan antrean 10 kali jumlah thread berarti 1,1 detik)
  4. Performance and Scalability Istio
    Dalam mode sidecar, permintaan melewati proxy sidecar di sisi pengirim lalu di sisi penerima; makin banyak fitur ditambahkan, makin panjang jalur pemrosesan di dalam proxy, dan pengumpulan telemetri menambah waktu tunggu permintaan berikutnya
  5. What is Envoy Envoy
    Envoy adalah proses terpisah yang berjalan di samping setiap server aplikasi, dan aplikasi berkomunikasi lewat Envoy di localhost
  6. Istio Standard Metrics Istio
    istio_request_duration_milliseconds (distribusi waktu pemrosesan permintaan HTTP dan gRPC); label reporter membedakan proxy sisi pengirim (source) dan sisi penerima (destination)
  7. 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: L13 Arsitektur dan operasional server

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

Lihat kartu interaktif dengan gambar dan simulasi