Jika jam di setiap server sedikit berbeda, keputusan cooldown, buff, dan waktu mulai event tidak sama antarserver.
Mengapa Jam server yang sinkronisasi waktunya berhenti selisih ratusan ms hingga beberapa detik dengan server lain → Akibatnya Jika waktu absolut, seperti waktu berakhirnya buff, dikirim antarserver, keputusannya meleset → Di layar Setelah berpindah, buff hilang atau cooldown mulai lagi dari awal
Penanggung jawab utama Infrastruktur server (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Untuk komunikasi antarserver, kirim sisa waktu sebagai pengganti waktu absolut.
Tugas Tim Infrastruktur
Pantau sinkronisasi waktu (NTP, chrony), pasang alert untuk selisih jam antarserver.
Kisaran angka
Jika sinkronisasi waktu (NTP, chrony) normal, selisih antarserver di data center yang sama biasanya hanya beberapa ms. Jika sinkronisasi berhenti, atau server virtual lama berhenti lalu berjalan lagi, selisihnya melebar menjadi ratusan ms hingga beberapa detik.
Di grafik
Naik perlahan · Offset jam per server
Yang diperiksa
Kumpulkan dan bandingkan System time (selisih jam sistem dengan jam NTP), Last offset, dan Ref time (waktu terakhir nilai ukur dari sumber waktu diterapkan) dari chronyc tracking di setiap server
Cocok jika
Offset server bermasalah selisih ratusan ms atau lebih dibandingkan server lain, atau Ref time-nya sudah lama berhenti, dan keputusan yang meleset hanya terjadi saat berpindah dari atau ke server itu
Tidak cocok jika
Offset semua server masih dalam beberapa ms: lebih mungkin perhitungan waktu di sisi game atau kesalahan sinkronisasi jam di klien
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Jam satu server yang melompat maju atau mundur sekaligus dibahas di “Lompatan jam sistem (NTP step)” pada lapisan OS server.
chrony – Frequently Asked Questionschrony Drift jam komputer biasa umumnya kurang dari 100 ppm, tetapi pada virtual machine bisa lebih besar; virtual machine yang dijeda lalu dilanjutkan bisa mengalami jam yang meleset sehingga perlu koreksi step
clock_gettime(2) — Linux manual pageLinux man-pages CLOCK_REALTIME bisa melompat tidak kontinu akibat perubahan manual atau koreksi NTP, sedangkan CLOCK_MONOTONIC tidak terpengaruh lompatan seperti itu
chronyc(1)chrony System time di chronyc tracking (selisih jam NTP dengan jam sistem), Last offset (offset yang diperkirakan saat koreksi terakhir), Ref time (waktu nilai ukur terakhir dari sumber waktu diterapkan)
Lihat juga
Lapisan yang sama: L13 Arsitektur dan operasional server