ChronyD

Updated 29 October 2025

Introduction
Commands Details
Clock Offset “chronyc tracking

We can use the following command to check for the Clock Offset:

bash
chronyc tracking

Its output is:

bash
[root@GW01A monitoring]# chronyc tracking
Reference ID    : 0A0E9D45 (10.14.157.69)
Stratum         : 2
Ref time (UTC)  : Wed Oct 29 07:55:35 2025
System time     : 0.000391756 seconds fast of NTP time
Last offset     : +0.000847606 seconds
RMS offset      : 0.000840737 seconds
Frequency       : 111.489 ppm slow
Residual freq   : +0.107 ppm
Skew            : 0.615 ppm
Root delay      : 0.002051588 seconds
Root dispersion : 0.003422280 seconds
Update interval : 1801.7 seconds
Leap status     : Normal

This command has the fields with its explanation:

Fields Explanation
FieldExampleMeaningGood Range / When to Alert
Reference ID0A0E9D45 (10.14.157.69)Which server the system is synced toShould not be 127.127.x.x (local clock)
Stratum2How many layers away from real time (UTC)✅ 1–4 good⚠️ 5–10 weak🔔 >10 bad
Ref time (UTC)Wed Oct 29 11:20:45 2025Time of last sync updateShould be recentAlert if too old
System time0.000142867 seconds fast of NTP timeActual difference between system clock & NTP clock✅ < 0.5 sec🔔 > 1 sec
Last offset+0.000144842 secondsMost recent measured time drift✅ < 0.1 sec🔔 > 0.5 sec
RMS offset0.000229859 secondsLong-term average driftLower = stableAlert if > 0.5 sec
Frequency114.245 ppm slowHow much system clock is adjusting rateHigh value may indicate unstable hardware
Residual freq+0.003 ppmRemaining frequency adjustmentTypically small → OK
Skew0.079 ppmExpected error in frequencyLow = stable
Root delay0.000943802 secondsTotal network delay to server✅ lower is betterAlert if > 0.1 sec
Root dispersion0.001699327 secondsDrift error accumulated from network + server✅ < 1 secAlert if > 3 sec
Update interval3094.3 secondsTime between sync pollsNot an alert field unless too large (> 1 hr)
Leap statusNormalLeap second insertion status✅ Must be Normal🔔 Not synchronized
Sync status summary “chronyc sources

We can use the following command to check for the clock sync status:

bash
chronyc sources

The output is:

bash
chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 10.14.157.69                  1  10   375   871  +2871us[+3016us] +/- 2859us
Fields Explanation

The fields in the output of this command can be explained as follows:

ColumnExampleMeaningGood Value / Alert Condition
M (Mode)^Connection type:^ server, = peer, # local clockNot an alert field
S (State)*Sync health:* = active source+ = backup- = not combined? = unreachablex error~ variable✅ Must have at least one *🔔 Alert if no * present
Name/IP Address10.14.157.69The NTP server usedNot an alert field
Stratum1Distance from UTC sourceLower is more accurate✅ 1–4 good⚠️ 5–15 weak🔔 Alert if > 10
Poll10Poll interval = 2^Poll seconds10 → 1024s (~17 min)Large values mean slower updatesNo direct alert
Reach375Octal history of last 8 polls (1=success)✅ ≥ 1 means reachable🔔 Alert if 0 (unreachable)
LastRx923Seconds since last successful response✅ Under 1000 typically good🔔 Alert if too old
Last sample – adjusted offset+2871usHow much system time adjusted✅ < 100 ms⚠️ 100–500 ms🔔 Critical > 500 ms
Last sample – measured offset[+3016us]Offset measured from serverSimilar thresholds as adjusted offset
Estimated error (jitter)+/- 2859usStability of measurementLower = better🔔 Alert if > 10 ms
Spotted a mistake or want something added? Send me a note.