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

Buku Putih Lag Game › L13 Arsitektur dan operasional server

Beban berlebih akibat log dan monitoring Logging / monitoring overhead

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

Buka kartu interaktif dengan gambar dan simulasi →

Saat terjadi gangguan, log melonjak, dan server yang mengirim log secara sinkron menjadi makin lambat karena log itu sendiri.

Mengapa Error terjadi, volume kirim log dan metrik melonjak → Akibatnya Pengumpul log tertinggal, dan server yang mengirim secara sinkron ikut menunggu → Di layar Saat gangguan, patah-patah dan freeze menjadi lebih parah karena log

Gejala
Patah-patah, Freeze
Faktor
Stall
Siapa yang mengalami
Seluruh server
Kapan
Saat banyak pemain berkumpul, Sesekali secara acak
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Kirim secara asinkron, lakukan sampling, buang log jika buffer penuh, kirim log error yang sama secara digabung.
Tugas Tim Infrastruktur
Siapkan kapasitas pengumpul log berdasarkan lonjakan volume saat gangguan, pasang alert untuk penumpukan di pengumpul.
Di grafik
Melonjak acak sesekali · Volume kirim log, antrean pengumpul log
Yang diperiksa
Periksa jumlah baris dan byte log per detik di server serta antrean dan jumlah log yang dibuang oleh agen pengumpul log, bersama waktu tick. Jika ada thread yang berhenti, periksa dengan bcc offcputime -p apakah thread itu menunggu di penulisan atau pengiriman log
Cocok jika
Saat tick melonjak, volume log melonjak menjadi puluhan kali lipat dari biasanya, dan waktu tunggu thread game terpusat pada call stack penulisan atau pengiriman log
Tidak cocok jika
Volume log sama seperti biasa, atau thread game tidak menunggu di bagian log: lonjakan log hanya akibat dari gangguan, jadi cari terpisah penyebab yang pertama kali memicu error
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)

Sumber

  1. Logging in C# Microsoft
    Metode logging .NET bersifat sinkron, jadi jika storage lambat disarankan menulis dulu ke storage yang cepat lalu memindahkannya kemudian
  2. Asynchronous loggers Apache Software Foundation
    Logging asinkron menyerap lonjakan singkat dengan antrean, tetapi jika output terus lambat, antrean penuh dan kecepatannya turun ke kecepatan output yang paling lambat, atau log dibuang sesuai kebijakan (Discard)
  3. Demonstrations of offcputime, the Linux eBPF/bcc version IO Visor
    Menjumlahkan waktu thread berhenti dan meninggalkan CPU (off-CPU) per call stack, -p untuk menentukan proses

Lihat juga

Lapisan yang sama: L13 Arsitektur dan operasional server

Penyebab di lapisan lain dengan gejala yang sama (Patah-patah)

Lihat kartu interaktif dengan gambar dan simulasi