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

Buku Putih Lag Game › Masalah yang hanya dialami sebagian pemain

Data karakter tertentu terlalu besar One character with oversized data (inventory, mail, buffs)

ID penyebab pt-heavy-char · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur DB (Tim Infrastruktur)

Buka kartu interaktif dengan gambar dan simulasi →

Karakter yang menumpuk ribuan item atau mail, atau punya daftar teman, daftar blokir, dan buff yang sangat banyak, harus memuat, menyimpan, dan mengabarkan ke sekitarnya data yang berkali-kali lipat lebih besar dari karakter lain. Lambatnya hanya terjadi pada karakter itu, tanpa peduli koneksinya.

Mengapa Pada karakter yang sudah lama dimainkan, atau akibat hadiah event, ribuan item menumpuk di inventory dan mailbox → Akibatnya Setiap kali login, pindah area, atau menyimpan, data sebanyak itu dibaca dari dan ditulis ke DB, dan data equipment serta buff yang dikirim ke pemain di sekitar juga besar → Di layar Hanya karakter itu yang loading masuknya lama dan tersendat sesaat saat membuka inventory atau mail. Pada server yang menunggu penyimpanan di thread game, pemain di sekitarnya pun ikut terhenti sebentar

Gejala
Tidak bisa masuk / loading tanpa henti, Input lag, Freeze
Faktor
Stall
Siapa yang mengalami
Hanya saya, Fitur tertentu saja
Kapan
Tepat setelah login atau maintenance, Saat melakukan aksi tertentu, Saat bergerak atau pindah area
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur DB (Tim Infrastruktur)
Tugas Tim Pengembang Game
Tetapkan batas penyimpanan inventory dan mail serta pembersihan otomatis mail lama, muat hanya bagian yang dibutuhkan secara bertahap, simpan hanya bagian yang berubah di luar thread game.
Tugas Tim Infrastruktur
Cari query baca lambat yang berulang untuk karakter yang sama di slow query log lalu teruskan ke Tim Pengembang Game, sediakan daftar teratas karakter dengan jumlah baris item dan mail terbanyak.
Kisaran angka
Jika satu item adalah satu baris di DB, karakter dengan 5.000 item membaca 5.000 baris setiap kali login. Itu puluhan kali lipat karakter biasa.
Di grafik
Hanya sebagian yang tinggi · Waktu login dan penyimpanan per karakter, jumlah baris yang dibaca dari DB per karakter
Yang diperiksa
Cari pembacaan dan penyimpanan lambat yang berulang dengan ID karakter yang sama di slow query log DB (MySQL slow query log, PostgreSQL log_min_duration_statement), lalu ambil daftar teratas jumlah baris per karakter di tabel item dan mail
Cocok jika
Query lambat terpusat pada beberapa ID karakter, jumlah baris item dan mail karakter itu puluhan kali rata-rata, dan tetap lambat walaupun login dari PC atau koneksi lain
Tidak cocok jika
Karakter lain di akun yang sama atau pemain lain ikut lambat: lebih mungkin server DB atau lock. Karakter itu normal di PC lain: lingkungan pemain
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Jika karakter yang sama tetap lambat walaupun login dari PC atau koneksi lain, sementara karakter lain di akun yang sama normal, curigai data karakternya. Karena itulah nama karakter wajib dicantumkan dalam laporan.

Sumber

  1. Extraneous Fetching antipattern Microsoft Azure
    Mengambil data lebih dari yang dibutuhkan menambah beban I/O dan memperlambat respons
  2. PostgreSQL Documentation: Error Reporting and Logging PostgreSQL
    log_min_duration_statement: mencatat SQL yang berjalan melebihi durasi tertentu untuk melacak query lambat
  3. The Slow Query Log MySQL
    Slow query log yang mencatat query yang melewati long_query_time

Lihat juga

Lapisan yang sama: Masalah yang hanya dialami sebagian pemain

Penyebab di lapisan lain dengan gejala yang sama (Tidak bisa masuk / loading tanpa henti)

Lihat kartu interaktif dengan gambar dan simulasi