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

Sách trắng lag game › L7 OS server (kernel)

Đồng hồ hệ thống nhảy (NTP step) Wall-clock jump (NTP step)

ID nguyên nhân so-timejump · Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Hạ tầng server (Đội hạ tầng)

Mở thẻ gốc có hình minh họa và thí nghiệm →

Khi đồng hồ server bị chỉnh tới hoặc lùi vài giây trong một lần, các timer dựa vào đồng hồ hệ thống sẽ kích hoạt dồn một lượt hoặc dừng hẳn.

Vì sao Dịch vụ đồng bộ thời gian chỉnh đồng hồ một lần với biên độ lớn → Dẫn đến Timer kích hoạt dồn một lượt hoặc dừng, timeout bị xác định sai → Trên màn hình Buff và hồi chiêu bất thường, mất kết nối đồng loạt, tua nhanh

Triệu chứng
Tua nhanh, Mất kết nối, Nuốt thao tác·rollback
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server
Khi nào
Thỉnh thoảng bất chợt
Phụ trách
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Hạ tầng server (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Tính thời gian đã trôi qua, timeout và hồi chiêu bằng monotonic clock (không nhảy, không lùi), chỉ dùng wall clock để hiển thị và ghi log.
Việc cần làm (Đội hạ tầng)
Chỉnh đồng hồ từ từ (makestep của chrony chỉ dùng ngay sau khi khởi động), giám sát trạng thái đồng bộ thời gian (độ lệch đồng hồ).
Con số tham khảo
ntpd chỉnh thẳng một lần khi độ lệch vượt 0,128 giây; nếu nhỏ hơn thì chỉnh dần, với tốc độ mà để xóa độ lệch 1 giây phải mất hơn 30 phút. Với chrony (hiện được dùng nhiều), cấu hình khuyến nghị (makestep) chỉ cho chỉnh thẳng vài lần ngay sau khi khởi động, sau đó chỉnh dần. Đồng hồ cũng nhảy khi máy ảo tạm dừng rồi chạy lại.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · Số lần timer kích hoạt và số lần mất kết nối, log chỉnh đồng hồ
Chỗ cần xem
Tìm trong log của dịch vụ đồng bộ thời gian các lần chỉnh đồng hồ với biên độ lớn trong một lần, đối chiếu với thời điểm xảy ra bất thường. Với chrony, mỗi lần chỉnh lớn hơn giá trị logchange (mặc định 1 giây) đều được ghi vào syslog
Đúng nếu
có bản ghi chỉnh đồng hồ vào lúc buff và hồi chiêu bất thường, mất kết nối đồng loạt hoặc tua nhanh, và biên độ chỉnh gần bằng mức bất thường
Loại trừ nếu
không có bản ghi chỉnh đồng hồ. Nếu là máy ảo, xem thêm trường hợp tạm dừng rồi chạy lại (“Bảo trì host cloud và live migration”)
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)

Nguồn

  1. ntpd - Network Time Protocol (NTP) daemon Network Time Foundation
    Độ lệch vượt ngưỡng step 128 ms thì chỉnh một lần, nhỏ hơn thì chỉnh dần; tốc độ 0,5 ms mỗi giây nên chỉnh 1 giây mất 2.000 giây (khoảng 33 phút)
  2. chrony – Frequently Asked Questions chrony
    Khuyến nghị chỉ cho phép step vài lần ngay sau khi khởi động, như makestep 1 3; máy ảo tạm dừng rồi chạy lại có thể thức dậy với giờ bị lệch
  3. clock_gettime(2) — Linux manual page Linux man-pages
    CLOCK_MONOTONIC không bị ảnh hưởng bởi các lần nhảy đột ngột của đồng hồ hệ thống và không chạy lùi
  4. chrony.conf(5) chrony
    logchange: chỉnh đồng hồ lớn hơn giá trị này (mặc định 1 giây) thì ghi vào syslog

Nguyên nhân nên xem cùng

Cùng tầng: L7 OS server (kernel)

Nguyên nhân ở tầng khác gây cùng triệu chứng (Tua nhanh)

Xem thẻ gốc có hình minh họa và thí nghiệm