跳到主要内容

routerd soak monitor - 2026-05-13

Scope

This note tracks the Phase 3.Z soak across:

HostOS targetRole
homert02Ubuntuproduction home router
router02NixOSlab router
router04FreeBSDlab router

The soak samples every five minutes into /var/log/routerd-soak-YYYYMMDD.log using scripts/routerd-soak-sample.sh.

Signals

Each sample captures:

  • routerctl status -o json
  • routerctl resources -o json
  • routerctl wireguard show wg-mesh -o json
  • routerctl tailscale peers -o json
  • routerd process RSS and elapsed time when ps supports it
  • UDP socket snapshot when ss is present

Initial state

The monitor is intended to detect generation drift, resource-count churn, WireGuard handshake staleness, Tailscale peer-state regressions, and obvious process RSS growth. The 24h result is pending until the next collection window has elapsed.

Initial deployment on 2026-05-13 UTC:

HostSchedulerInitial result
homert02root cron, every 5 minutesrouterctl status Healthy, resource count 94, wg-mesh handshakes fresh, Tailscale peer list available
router02runtime systemd timer, every 5 minutesrouterctl status Healthy, wg-mesh handshakes fresh, Tailscale skipped because tailscale is not installed
router04root cron, every 5 minutesrouterctl status Healthy, wg-mesh handshakes fresh, Tailscale skipped because tailscaled is not running

NixOS router02 uses a runtime systemd timer under /run/systemd/system because /etc/systemd/system is read-only on that host. homert02 and router04 use root crontab entries.

Follow-up checklist

  • Confirm each host appends samples for at least 24h.
  • Compare first and last resource counts.
  • Check that Healthy/Applied resources do not flap.
  • Check wg-mesh peer handshakes remain fresh on Linux and FreeBSD peers.
  • Record any anomaly here before making a larger follow-up task.