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

Game Lag White Paper › L7 Server OS (kernel)

System clock jump (NTP step) Wall-clock jump (NTP step)

Cause ID so-timejump · Primary owner Game team (Server development) · Also Infra team (Server infrastructure)

Open the interactive card with figures and simulations →

When the server clock is moved forward or back by several seconds in one step, timers that depend on the system clock fire all at once or stop.

Why Time sync moves the clock by a large amount in one step → Effect Timers fire in a batch or stop, and timeouts are misjudged → On screen Buff and cooldown glitches, mass disconnects, fast-forward

Symptoms
Fast-forward, Disconnect, Dropped action / rollback
Factors
Stall
Who’s affected
Whole server
When
Randomly
Owner
Primary owner Game team (Server development) · Also Infra team (Server infrastructure)
Game team action items
Compute elapsed time, timeouts, and cooldowns with a monotonic clock that never jumps or goes backward, use the wall clock only for display and logging.
Infra team action items
Adjust the clock gradually (chrony’s makestep only right after startup), monitor time sync status (clock offset).
Ballpark numbers
ntpd steps the clock in one go when the offset exceeds 0.128 s; below that, it slews gradually at a rate that takes a little over 30 minutes to remove a 1-second offset. With the recommended setting (makestep), chrony, now widely used, steps the clock only a few times right after startup, then slews gradually. The clock also jumps when a VM pauses briefly and resumes.
On the graph
Random spikes · Timer firings and disconnects, clock adjustment log
Where to look
Entries in the time sync service’s log where the clock was stepped by a large amount, lined up with when the problems occurred. With chrony, any adjustment larger than logchange (default 1 s) is written to syslog
Confirmed if
Clock adjustments appear in the log at the times of buff and cooldown glitches, mass disconnects, and fast-forward, and the size of the adjustment matches the size of the glitch
Ruled out if
No clock adjustments logged: not this cause. On a VM, also check for a pause and resume (“Cloud host maintenance and live migration”)
Check with
Infra tools (no game code needed)

Sources

  1. ntpd - Network Time Protocol (NTP) daemon Network Time Foundation
    Offsets above the 128 ms step threshold are corrected in one step and smaller ones gradually, at 0.5 ms per second, so correcting 1 second takes 2,000 s (about 33 minutes)
  2. chrony – Frequently Asked Questions chrony
    Recommended: allow steps only a few times right after startup, as in makestep 1 3; a VM that was paused and resumed can wake up with the wrong time
  3. clock_gettime(2) — Linux manual page Linux man-pages
    CLOCK_MONOTONIC is not affected by discontinuous jumps in the system clock and never goes backward
  4. chrony.conf(5) chrony
    logchange: clock adjustments larger than this value (default 1 s) are written to syslog

See also

Same layer: L7 Server OS (kernel)

Same symptom (Fast-forward), other layers

View the interactive card with figures and simulations