server-spy - system congestion tracker for shared servers
What it monitors
find out which of your experiments got slowed down and why
server-spy classifies your experiment processes with a simple name or regex filter, then records everything that happens around them
▁▃▆
Live congestion
CPU overload, RAM exhaustion, disk I/O bottlenecks, scheduler waiting times.
▰▱▰
Resource utilization
How CPU and memory are split between your workers and everything else.
Experiment runs
One row per distinct parameter combination you are running: wall time, CPU time, wait, peak RSS, PSI stall penalty.
Who is slowing you down
Which users on the machine consumed resources during your run and the exact processes behind it.
Detach & reattach
The daemon keeps recording in the background. Close the TUI, come back later, attach again.
Save & load
Snapshots in plain CSV.
Install
A single self-contained Linux binary. No runtime dependencies. Installable on user-level — no sudo required.
Quick install
$ curl -fsSL https://raw.githubusercontent.com/lennart-rth/server-spy/master/install.sh | sh<br>copy
PlatformCommandDetails<br>Debian / Ubuntucurl -fsSL https://lennart-rth.github.io/server-spy/install-apt.sh | sudo shapt repository<br>Nix / NixOSnix run github:lennart-rth/server-spy<br>Fedora / RHELrpm -Uvh server-spy--1.x86_64.rpmdownload from GitHub releases<br>crates.iocargo install server-spy<br>static binaryserver-spy--x86_64-unknown-linux-musl.tar.gzdownload from GitHub releases
Quick start
Select your experiment processes - press f, to filter for your experiment runs using regex or simple matching.
Monitor - Watch who and what is slowing down your experiments.<br>We classify all your different runs based on their parameters and show for each of them how much they are affected by resource congestions.
Detach - Detach the TUI. server-spy continues to collect the data in the background. You can connect again any time.
fupdate the worker filter (with live preview)<br>s / lsave / load snapshots to disk<br>qterminate - stop the background daemon and exit<br>ddetach - exit, the daemon keeps recording<br>rrestart recording<br>tstealth mode - rename the processes so ps/top show something innocuous for others