Basic Prerequisites: 02 · Kernel Tuning, 03 · Kernel Bypass & NICs, and 04 · Market-Data Networking. This page is the folder’s fault-analysis hub.


1. Intuition & Practical Objective

A tuned low-latency host is a fragile equilibrium: it stays fast only as long as the kernel flags, IRQ affinities, hugepages, flow-director rules, and NUMA placements hold. Real systems fail not by “becoming slow” but by degrading silently - the mean latency barely moves while the p99 creeps up, because the thing that broke (an interrupt re-enabled, a rule reverted, a buffer mis-sized) only shows up in the tail. The objective of this page: turn silent degradation into a visible alarm, and tie each alarm back to a first principle.

The failure classes, in one line each:

  1. Configuration drift - the tuned box is not the running box; a deploy silently reverts a tunable.
  2. Jitter events - an interrupt storm, scheduler wake, or NIC coalescing re-injects variance into a path you had made deterministic.
  3. Latency measurement error - your monitor lies: timer overhead, coarse histogram bins, or clock asymmetry corrupt the very percentiles you trust.

The discipline is one sentence: measure the tail continuously, alarm when it drifts beyond a control-chart threshold, and make the config diff-able so the box cannot drift unnoticed.

One-sentence essence. “Low-latency systems die slowly, not suddenly - the tail creeps up while the mean lies flat - so the practice is monitoring the tail with a control chart, diffing configuration on every deploy, and auditing your measurement before you trust any number.”


2. Mathematical Ground Truth & Derivations

Why the mean lies. Because , a single re-introduced jitter source (one re-enabled interrupt, one drifted rule) moves the variance - and variance moves the upper percentiles orders of magnitude more than it moves the mean. A stage that spikes 2% of the time with a 5×-larger mean barely shifts the median but multiplies the p99 (the §3 result of 01 · From Zero: p99 17.9 → 52.9 µs from a 2% spike).

Control-chart detection. To alarm on drift you compare the monitored statistic (e.g. per-window p99) against a baseline. An EWMA control chart smooths the series,

and alarms when deviates more than “EWMA sigma” from baseline:

Here are the baseline mean/std, and is the steady-state EWMA standard deviation (so the test compares the EWMA statistic against a multiple of its own volatility). Tuned well, it alarms quickly after a real drift while staying quiet in the clean regime - the §3 model detects a 4.48→~12 µs p99 drift within one monitoring interval with zero false alarms on the clean prefix.

Measurement error is a first-order term. Every latency number is measured, and measurement adds its own bias: timer overhead inflates a single-shot estimate to ; a histogram with bin width cannot resolve below ; an asymmetric PTP/NTP path biases the clock by (04 · Clock Synchronization). If you do not audit the instrument, you are tuning against noise.


3. Computational Implementation - a configuration-drift EWMA monitor

Verifies the §2 control chart: simulates a monitored p99 stream, injects a drift at interval 6000, and shows the EWMA chart alarming immediately while staying silent (zero false alarms) on the clean prefix. Stdlib only.

The monitor catches a ~3× p99 drift the instant it appears and produces zero false alarms across 6,000 clean intervals. This is the operational heart of the folder: the same EWMA-on-p99 pattern, pointed at your real per-window p99 stream, turns “the box feels slow” into an immediate, named alarm when configuration drifts.


4. Failure Modes & First-Principles Breakdowns

  1. Silent config drift. Kernel/NIC tuning is not versioned; a package update or reboot reverts isolcpus, IRQ affinity, or hugepages. Fix: lock tuning into a boot-time config, diff it on every deploy, and alarm on the tail (not the mean) so a revert is visible.
  2. Jitter re-injection. An interrupt storm, a co-located workload sharing the isolated core’s L3, or NIC coalescing re-adds variance. Fix: monitor p99/p99.9 continuously (the EWMA chart above); a drift is the first signal of a re-injected jitter source.
  3. Measurement error masquerading as latency. Timer overhead (~tens of ns), coarse histogram bins, and asymmetric clocks each bias your quoted percentiles - sometimes enough to claim a “regression” that is really an instrument change. Fix: audit the instrument (06 · Advanced Extensions) before acting on a number.
  4. Optimising the mean. Every tuning action that lowers the mean but leaves the tail alone loses the race. Anchor every change to a p99/p99.9 regression test, not an average.

5. References

  • Kerrisk, Michael - The Linux Programming Interface: the sysctl/affinity vocabulary whose drift this page guards against.
  • Databento - Low-Latency Tuning Guide for Linux and Trading Systems: practitioner-grade tuning whose silent revert is a classic drift.
  • Red Hat Enterprise Linux - Tuning the Network Performance: sysctl baseline to diff against.
  • Montgomery, D. - Introduction to Statistical Quality Control: EWMA control-chart theory behind
  • Hasbrouck, Joel & Saar, Gideon - “Low-latency trading,” J. Financial Markets 16(4) (2013): why the tail, not the mean, is the market’s metric.

6. Connected Graph Bridges