<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Chrony on Netdata</title><link>https://www.netdata.cloud/tags/chrony/</link><description>Recent content in Chrony on Netdata</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://www.netdata.cloud/tags/chrony/index.xml" rel="self" type="application/rss+xml"/><item><title>Chrony Monitoring</title><link>https://www.netdata.cloud/monitoring-101/chrony-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/monitoring-101/chrony-monitoring/</guid><description>&lt;h2 id="chrony-monitoring"&gt;Chrony Monitoring&lt;/h2&gt;&#10;&lt;h3 id="what-is-chrony"&gt;What Is Chrony?&lt;/h3&gt;&#10;&lt;p&gt;Chrony is a versatile software suite for maintaining the system clock accuracy on your Linux distributions. Acting as an implementation of the Network Time Protocol (NTP), Chrony ensures your systems are synchronized to accurate time sources, which is crucial for various server operations. It is highly adaptive, providing swift synchronization capabilities, making it particularly beneficial for systems with sporadic network connectivity or those that endure extreme delays.&lt;/p&gt;</description></item><item><title>CockroachDB clock skew cascade: how shared NTP drift causes quorum loss</title><link>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-clock-skew-cascade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-clock-skew-cascade/</guid><description>&lt;p&gt;Multiple CockroachDB nodes crashed overnight. The logs show &amp;ldquo;clock synchronization error: this node is more than 500ms away from at least half of the known nodes.&amp;rdquo; You restart them, and they crash again. Some ranges are now unavailable. The cluster is losing quorum.&lt;/p&gt;&#10;&lt;p&gt;A shared NTP failure caused multiple nodes to drift past CockroachDB&amp;rsquo;s self-termination threshold in quick succession. Single-node clock skew is bad but recoverable. Multi-node skew from a shared NTP source can take down quorum faster than the cluster can heal.&lt;/p&gt;</description></item><item><title>CockroachDB clock synchronization error: this node is more than 500ms away from at least half of the known nodes</title><link>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-clock-synchronization-error-500ms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-clock-synchronization-error-500ms/</guid><description>&lt;p&gt;You see this fatal log line on a CockroachDB node:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;clock synchronization error: this node is more than 500ms away from at least half of the known nodes&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The process exits immediately. If the node is managed by systemd, Kubernetes, or a process supervisor, it restarts and crashes again. The crash-loop continues until the clock problem is fixed.&lt;/p&gt;&#10;&lt;p&gt;CockroachDB uses Hybrid Logical Clocks (HLC) to enforce serializable consistency across distributed transactions. HLC combines physical wall-clock time with a logical counter. Every node must agree on time within a bounded window, controlled by &lt;code&gt;--max-offset&lt;/code&gt; (default 500ms). When a node detects its clock has drifted beyond 80% of &lt;code&gt;--max-offset&lt;/code&gt; relative to a majority of peers, it calls &lt;code&gt;log.Fatal&lt;/code&gt; and exits rather than risk serving stale reads or assigning timestamps that conflict with committed transactions.&lt;/p&gt;</description></item><item><title>CockroachDB clock_offset_meannanos high: catching clock drift before self-termination</title><link>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-clock-offset-high/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-clock-offset-high/</guid><description>&lt;p&gt;&lt;code&gt;clock_offset_meannanos&lt;/code&gt; measures the mean clock offset between a CockroachDB node and its peers. When it climbs, you are on a path that ends in silent performance degradation from widened read uncertainty windows, or a node self-terminating to preserve data consistency.&lt;/p&gt;&#10;&lt;p&gt;The thresholds are unforgiving. CockroachDB uses a default &lt;code&gt;--max-offset&lt;/code&gt; of 500ms. A node self-terminates when its mean offset exceeds 80% of that value (400ms) relative to at least half of its peers. But a constant 200ms offset, stable and below any threshold, still doubles the uncertainty interval for every read. Transactions silently restart more often, P99 read latency creeps up, and nobody suspects the clock.&lt;/p&gt;</description></item><item><title>CockroachDB ReadWithinUncertaintyInterval restarts: the near-diagnostic signal of clock skew</title><link>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-readwithinuncertainty-restarts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/cockroachdb/cockroachdb-readwithinuncertainty-restarts/</guid><description>&lt;p&gt;When CockroachDB reports &lt;code&gt;readwithinuncertainty&lt;/code&gt; as a transaction restart cause, you have a clock synchronization problem. This restart cause does not appear in meaningful quantities for any other reason. Any sustained nonzero rate, even well below the self-termination threshold, indicates that NTP or the underlying clock source is not keeping node clocks aligned.&lt;/p&gt;&#10;&lt;p&gt;The error stems from CockroachDB&amp;rsquo;s Hybrid Logical Clock (HLC) design. Each transaction receives a timestamp from its gateway node&amp;rsquo;s HLC, which combines physical wall-clock time with a logical counter. When a read on one node encounters a write from a transaction that started on a different node, and the two nodes&amp;rsquo; clocks are not aligned, the database cannot determine which transaction began first. CockroachDB conservatively restarts the reading transaction at a higher timestamp. Under SERIALIZABLE isolation, this restart requires client-side retry logic and adds directly to tail latency.&lt;/p&gt;</description></item><item><title>NTP drift on network devices: the silent killer of event correlation</title><link>https://www.netdata.cloud/guides/network/network-ntp-drift/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/network/network-ntp-drift/</guid><description>&lt;p&gt;Clock drift on network devices produces no visible symptom. The device stays up, interfaces carry traffic, BGP sessions remain Established, SNMP keeps responding. The damage surfaces hours or days later, in a postmortem where two devices&amp;rsquo; timestamps disagree by hundreds of milliseconds and the analyst cannot reconstruct the event sequence. Every cross-device correlation in the monitoring stack depends on accurate, monotonic time across every collector and every polled device.&lt;/p&gt;&#10;&lt;p&gt;The telemetry itself looks fine. Syslog messages arrive with timestamps. Flow records carry timestamps. BGP NOTIFICATION traps are time-stamped. The problem is that those timestamps are wrong relative to each other, and nothing flags the discrepancy. A device 200 milliseconds off its peers produces records that technically arrive but correlate poorly with records from correctly synchronized devices.&lt;/p&gt;</description></item></channel></rss>