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

Buku Putih Lag Game › L7 OS server (kernel)

Lompatan jam sistem (NTP step) Wall-clock jump (NTP step)

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

Buka kartu interaktif dengan gambar dan simulasi →

Jika jam server disesuaikan beberapa detik maju atau mundur sekaligus, timer yang bergantung pada jam sistem terpicu bersamaan atau berhenti.

Mengapa Sinkronisasi waktu menggeser jam dalam jumlah besar sekaligus → Akibatnya Timer terpicu bertumpuk atau berhenti, dan timeout dinilai keliru → Di layar Buff dan cooldown kacau, disconnect serentak, fast forward

Gejala
Fast forward, Disconnect, Aksi hilang / rollback
Faktor
Stall
Siapa yang mengalami
Seluruh server
Kapan
Sesekali secara acak
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Hitung waktu berlalu, timeout, dan cooldown dengan monotonic clock yang tidak melompat atau mundur, pakai wall clock hanya untuk tampilan dan pencatatan.
Tugas Tim Infrastruktur
Sesuaikan jam secara perlahan (makestep di chrony hanya tepat setelah dinyalakan), pantau status sinkronisasi waktu (selisih jam).
Kisaran angka
ntpd langsung menyamakan jam sekaligus jika selisihnya lebih dari 0,128 detik; jika lebih kecil, jam disesuaikan perlahan dengan kecepatan yang butuh lebih dari 30 menit untuk menghapus selisih 1 detik. chrony, yang kini banyak dipakai, dengan pengaturan yang disarankan (makestep) hanya menyamakan sekaligus beberapa kali tepat setelah dinyalakan, lalu menyesuaikan perlahan sesudahnya. Jam juga melompat saat virtual machine berhenti sebentar lalu berjalan lagi.
Di grafik
Melonjak acak sesekali · Jumlah timer terpicu dan jumlah disconnect, catatan penyesuaian jam
Yang diperiksa
Cari catatan penyesuaian jam yang besar sekaligus di log layanan sinkronisasi waktu, lalu cocokkan dengan waktu terjadinya anomali. chrony mencatat ke syslog jika penyesuaian lebih besar dari nilai logchange (default 1 detik)
Cocok jika
Ada catatan penyesuaian jam pada waktu buff dan cooldown kacau, disconnect serentak, atau fast forward terjadi, dan besar penyesuaiannya mirip dengan besar anomali
Tidak cocok jika
Tidak ada catatan penyesuaian jam: bukan penyebab ini. Jika memakai virtual machine, periksa juga kemungkinan VM berhenti lalu berjalan lagi (“Maintenance host cloud dan live migration”)
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)

Sumber

  1. ntpd - Network Time Protocol (NTP) daemon Network Time Foundation
    Jika selisih melewati ambang step 128 ms, jam disamakan sekaligus; jika lebih kecil, disesuaikan perlahan dengan kecepatan 0,5 ms per detik, sehingga menyamakan 1 detik butuh 2.000 detik (sekitar 33 menit)
  2. chrony – Frequently Asked Questions chrony
    Disarankan hanya mengizinkan step beberapa kali tepat setelah start, seperti makestep 1 3; virtual machine yang berhenti lalu dilanjutkan bisa bangun dengan jam yang sudah meleset
  3. clock_gettime(2) — Linux manual page Linux man-pages
    CLOCK_MONOTONIC tidak terpengaruh lompatan tidak kontinu pada jam sistem dan tidak berjalan mundur
  4. chrony.conf(5) chrony
    logchange: jika jam disesuaikan lebih besar dari nilai ini (default 1 detik), penyesuaian dicatat ke syslog

Lihat juga

Lapisan yang sama: L7 OS server (kernel)

Penyebab di lapisan lain dengan gejala yang sama (Fast forward)

Lihat kartu interaktif dengan gambar dan simulasi