From fdc857359a65ac181b6059d8a16bf674b6c1112f Mon Sep 17 00:00:00 2001 From: lachtan Date: Mon, 14 Sep 2026 12:04:06 +0200 Subject: [PATCH] nanobot: 2026-09-14 12:04:04 --- projects/devops/memory.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/projects/devops/memory.md b/projects/devops/memory.md index ec2773a..395bbdc 100644 --- a/projects/devops/memory.md +++ b/projects/devops/memory.md @@ -92,3 +92,22 @@ Kdy se nehodí: automatizované testy/CI (na to pytest+httpx nebo newman), sdíl Alternativy: **atac** (Rust TUI, podobný cíl), **httpie**/**curlie** (CLI, rychlejší na jednorázovky), **Bruno** (GUI, ale stejná file-based Git-friendly filozofie). Vzetá idea i bez instalace: API requesty patří do repa jako soubory vedle kódu, který testují — ne do proprietárního formátu v cizím cloudu. +- 2026-09-14: Poznámka z článku (Medium, Jesse L) + dohledané info z primárních zdrojů: **below** — "time traveling resource monitor" od Meta (facebookincubator), Rust TUI. Neustále nahrává detailní stav systému (per-process, per-cgroup, PSI) na lokální disk a umožňuje replay jakéhokoli okamžiku minulosti: `below replay -t "3m ago"`. Zaplněná díra: live monitory mají detail bez paměti, metriky (Prometheus/Zabbix) paměť bez detailu — "který proces to způsobil v 3:07" neodpoví ani jeden. + +Relevance pro homelab (nvidia.hell incident 12.–13. 9.): přesně tenhle use case — swap thrash, SSH nedostupné 45 min, po návratu žádné per-process data. below s cgroup pohledem + PSI by ukázal kauzální řetěz zpětně. PSI (Pressure Stall Information) je relevantní i jako koncept: "disk je busy" vs "procesy čekají na disk" — tlak, ne vytížení, ukazuje bottleneck. + +Ověřená fakta (primární zdroje): +- Repo: https://github.com/facebookincubator/below, Apache 2.0, ~2,5k stars. Poslední release **v0.11.0 (24. 9. 2025)** — article verze potvrzena. Vývoj: Meta resource control team (kernel/container/hardware lidi) s inputem atop power userů. +- Balíčky: **Fedora 34+, Alpine 3.17+, Gentoo (sys-process/below), Amazon Linux 2023.9**. **Debian/Ubuntu apt balíček NENÍ** — na Debian strojích (celý Proxmox cluster, LXC) nutné `cargo install below` z source (build deps v docs/building.md: clang, libelf-dev, libssl-dev, zlib1g-dev…). +- Dlouholeté defekty atopu, proti kterým below stavěli (Fedora Magazine): žádná cgroup podpora; custom delta compression ztrácí data zrovna pod resource pressure; strná learning curve. +- Comparison doc (oficiální): below "goes to great lengths to avoid priority inversions during host resource contention"; **žádná vestavěná komprese dat — doporučují btrfs transparent compression**. Zbylé alternativy: htop (žádná historie), sysstat/sar (binárka, žádný interaktivní interface, žádné cgroups), cAdvisor (cgroup1 only, vyžaduje externí storage), collectd (žádné UI). +- Subcommandy: `below live` / `below replay -t "5m ago"` / `below dump` (JSON/CSV/OpenMetrics → Prometheus/Grafana, contrib/grafana) / `below snapshot` (replayovatelný soubor time range → přiložit k incident ticketu). Klíče TUI: **t/T** vpřed/vzad, **p** process view, **s** system view, **z** zoom do cgroup, **?** help. +- Data ukládá do **/var/log/below/store** — nutné ohlídat místo na disku (nahrávání běží continuous, retention konfigurovatelné). + +Bezpečnost (důležité při instalaci): +- **CVE-2025-27591 / RUSTSEC-2025-0149** (CVSS 7.3): do v0.8.1 below vytvářel world-writable `/var/log/below` (mode 0777) → symlink attack = lokální privilege escalation. **Opraveno od v0.9.0** — instalovat jen >=0.9.0, současný v0.11.0 čistý. +- Dále v0.8.1 i po opravě: vnitřní data ve `/var/log/below/store` world-readable — info leak pro neprivilegované lokální uživatele. + +Limity: Linux only, **cgroup v2 only** (Proxmox/Debian moderní = OK), root pro plnou viditelnost, per-host (žádný fleet view), musí běžet dopředu ("kouřový detektor" — po incidentu instalovaný below nic neříká). + +Neověřitelné/nezjištěné: přesná spotřeba místa na disk per den a reálný CPU overhead daemonu — v dokumentaci čísla nejsá,Community údaje chybí; před nasazením na stroj s malým rootem změřit vlastní.