Skip to content
RunStack
Wiki· Updated 19 Oct 2026

rs slow — why it is slow

What rs slow findings mean: steal, iowait, swapping, OOM, a busy disk, conntrack — and what to do.

rs slow measures the server for N seconds (--seconds N, 5 by default). Run it while it is slow.

FindingMeaningWhat to do
steal ≥ 10%the hypervisor withholds CPU: the provider's host is oversold or the plan limits CPUcannot be fixed inside — ask the provider, move hosts or to a plan with dedicated cores
iowait ≥ 20%processes wait for the disksee Disks: who writes — iotop -oPa; often a database without indexes, logs or a backup
CPU 90%+ busythe CPU is doing workTop by CPU: that process is the cause; for containers — the Containers section
Load above the core counttasks queue up (CPU or disk)look at iowait and processes
< 10–20% memory availablememory is running outTop by memory; limit the service or add RAM
Active swappingmemory is short, pages go to disk — everything slowsfree memory or add RAM
No swapwhen memory runs out the kernel kills processes at oncea swap file: fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile and a line in /etc/fstab
OOM kills in 24 hthe kernel killed processes for lack of memorywhich ones — in the report; journalctl -k --since -24h | grep -i oom
Disk busy 80%+ of the timethe disk is the bottleneckiotop -oPa; SSD instead of HDD, fewer logs, heavy jobs at night
File system 85%+ fullat 100% databases and Docker stoprs clean, du -xh / --max-depth=2 | sort -h | tail
Container restartscrashes on start or on memorydocker logs --tail 50 <name>
conntrack 80%+the connection table is nearly full — new connections are droppedsysctl -w net.netfilter.nf_conntrack_max=… (double it), permanently in /etc/sysctl.d/
Open files near the limitapps get "Too many open files"find the descriptor leak; raise fs.file-max
Disk errors in the kernel logthe disk may be failingback up now; SMART: smartctl -a /dev/<disk>; on a VPS — the provider

If nothing stood out, run it again while it is slow, and longer: rs slow --seconds 30.