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 trackingIts 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 : NormalThis command has the fields with its explanation:
Fields Explanation
| Field | Example | Meaning | Good Range / When to Alert |
|---|---|---|---|
| Reference ID | 0A0E9D45 (10.14.157.69) | Which server the system is synced to | Should not be 127.127.x.x (local clock) |
| Stratum | 2 | How many layers away from real time (UTC) | ✅ 1–4 good⚠️ 5–10 weak🔔 >10 bad |
| Ref time (UTC) | Wed Oct 29 11:20:45 2025 | Time of last sync update | Should be recentAlert if too old |
| System time | 0.000142867 seconds fast of NTP time | Actual difference between system clock & NTP clock | ✅ < 0.5 sec🔔 > 1 sec |
| Last offset | +0.000144842 seconds | Most recent measured time drift | ✅ < 0.1 sec🔔 > 0.5 sec |
| RMS offset | 0.000229859 seconds | Long-term average drift | Lower = stableAlert if > 0.5 sec |
| Frequency | 114.245 ppm slow | How much system clock is adjusting rate | High value may indicate unstable hardware |
| Residual freq | +0.003 ppm | Remaining frequency adjustment | Typically small → OK |
| Skew | 0.079 ppm | Expected error in frequency | Low = stable |
| Root delay | 0.000943802 seconds | Total network delay to server | ✅ lower is betterAlert if > 0.1 sec |
| Root dispersion | 0.001699327 seconds | Drift error accumulated from network + server | ✅ < 1 secAlert if > 3 sec |
| Update interval | 3094.3 seconds | Time between sync polls | Not an alert field unless too large (> 1 hr) |
| Leap status | Normal | Leap 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 sourcesThe 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] +/- 2859usFields Explanation
The fields in the output of this command can be explained as follows:
| Column | Example | Meaning | Good Value / Alert Condition |
|---|---|---|---|
| M (Mode) | ^ | Connection type:^ server, = peer, # local clock | Not 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 Address | 10.14.157.69 | The NTP server used | Not an alert field |
| Stratum | 1 | Distance from UTC sourceLower is more accurate | ✅ 1–4 good⚠️ 5–15 weak🔔 Alert if > 10 |
| Poll | 10 | Poll interval = 2^Poll seconds10 → 1024s (~17 min) | Large values mean slower updatesNo direct alert |
| Reach | 375 | Octal history of last 8 polls (1=success) | ✅ ≥ 1 means reachable🔔 Alert if 0 (unreachable) |
| LastRx | 923 | Seconds since last successful response | ✅ Under 1000 typically good🔔 Alert if too old |
| Last sample – adjusted offset | +2871us | How much system time adjusted | ✅ < 100 ms⚠️ 100–500 ms🔔 Critical > 500 ms |
| Last sample – measured offset | [+3016us] | Offset measured from server | Similar thresholds as adjusted offset |
| Estimated error (jitter) | +/- 2859us | Stability of measurement | Lower = better🔔 Alert if > 10 ms |
Spotted a mistake or want something added? Send me a note.