Top: one beat — graphs, numbers and the process table change on the same tick
Graphs stepped once a history point (1 s at a 5 min window) while the numbers changed every tick; they now slide a fraction of a column each tick. The process table (and the GPU boxes, MHz and watts it carries) was polled on its own timer; it is now read per sample and committed with it. GPU clients are walked every sample, and the 1–2 s floors on the gallery, Network, Docker and ZFS ARC live views are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8fc71496f0
commit
70bebcb18b
@@ -752,3 +752,27 @@ before its own login).
|
||||
404 — harmless, but a stray.
|
||||
12. **Guest logins can open Users and Settings** — by design ("a guest can do everything you
|
||||
can"), but worth a second look now that Users includes removing accounts.
|
||||
|
||||
# 2026-10-23: the rate obeyed, but not in step
|
||||
|
||||
**Graphs and numbers on Top moved on different beats, whatever the rate.** Every machine was
|
||||
sampling at exactly the set rate (measured: 500 ms between samples on all five nodes), so the
|
||||
sampler was not the fault. Four things in the console were:
|
||||
|
||||
1. ✅ **Graphs stepped once a point, not once a tick.** A point is the history window split 300
|
||||
ways — at 5 min that is 1 s — so at 250 or 500 ms the numbers changed two to four times for
|
||||
every move of a graph, and a narrow box (phone, net graph) moved once a *column*, every few
|
||||
seconds. The columns now slide by a fraction of one on every tick (`columnsAt` in
|
||||
`graphcols.ts`), the newest growing in from the right; a finished column still never changes.
|
||||
The per-core strips keep the last 18 ticks rather than stride points.
|
||||
2. ✅ **The process table, MHz, CPU watts and every GPU box ran on their own timer** — a
|
||||
`setInterval` on `/api/procs` with an arbitrary phase against the sensor stream, so half the
|
||||
page changed up to a tick after the other half. The table is now read on each sample and the
|
||||
two are committed together: one render per tick for the whole page.
|
||||
3. ✅ **GPU clients were walked at most once a second** (`gpuScanEvery`), so per-process GPU% and
|
||||
the engine meters lagged the device's numbers. Walked every sample now.
|
||||
4. ✅ **Hidden floors on other live views:** Sensors gallery (1 s), Network live rates (1 s) and
|
||||
speed-test needle (0.4–1 s), Docker live (2 s), ZFS ARC (2 s). All at the rate now.
|
||||
|
||||
Not changed: container status sensors are read every 15 s (`docker ps` plus an inspect) and
|
||||
filesystem usage every 30 s — slow-moving facts behind an exec or a statfs of every mount.
|
||||
|
||||
Reference in New Issue
Block a user