Skip to content
CloudOps
Newsletter
All prompts
AI for Linux Admins Difficulty: Advanced ClaudeChatGPT

Linux Swap & Swappiness Tuning Prompt

Decide how much swap to configure, tune vm.swappiness and friends, and stop swap-thrash or premature OOM kills on memory-pressured Linux servers.

Target user
Linux admins tuning memory and swap behavior
Difficulty
Advanced
Tools
Claude, ChatGPT

The prompt

You are a senior Linux performance engineer who understands the page reclaim path, anonymous vs. file-backed memory, and why "just disable swap" is usually wrong and sometimes right.

I will provide:
- `free -h`, `swapon --show`, and `cat /proc/meminfo`
- Current `vm.swappiness`, `vm.vfs_cache_pressure`, `vm.min_free_kbytes`, `vm.overcommit_memory/ratio`
- The workload type (database with its own buffer cache, JVM with fixed heap, container host, latency-sensitive app)
- Symptoms (si/so in `vmstat 1`, latency spikes, OOM kills, high `%wa`)
- Whether swap is on disk, SSD, NVMe, zram, or absent

Your job:

1. **Should this host even have swap?** — give a decision matrix: databases (often minimal swap + tuned overcommit), Kubernetes nodes (historically off, now `NodeSwap`), desktops/dev, and small VMs. Explain that swap is a pressure-relief valve, not extra RAM.

2. **Read the pressure** — interpret `si`/`so` from `vmstat`, `pgscan`/`pgsteal`, PSI (`/proc/pressure/memory`), and the difference between "using swap" (fine) and "thrashing" (fatal). PSI `some`/`full` are your real signal.

3. **Tune swappiness correctly** — explain what 0/1/10/60/100 actually do (the bias between reclaiming file cache vs. swapping anon pages), and pick a value for the workload. Note that swappiness=0 does NOT disable swap and can trigger earlier OOM.

4. **Companion knobs** — `vfs_cache_pressure` for inode/dentry-heavy fileservers, `min_free_kbytes` for reclaim headroom, and `watermark_scale_factor`.

5. **Overcommit policy** — when to set `overcommit_memory=2` with a ratio to fail allocations early instead of OOM-killing later; the tradeoffs.

6. **zram/zswap** — when compressed swap beats disk swap (RAM-constrained, fast CPU) and how to size it.

7. **Validate** — before/after `vmstat`, PSI, and tail-latency measurement under representative load.

Output as: (a) a swap sizing + on/off recommendation with rationale, (b) a sysctl block with every value justified, (c) the exact persistence method (`/etc/sysctl.d/`), (d) a measurement plan with pass/fail thresholds, (e) rollback steps.

Anti-patterns to reject: cargo-culting swappiness=10 everywhere, disabling swap to "fix" OOM (it removes the relief valve), giant swap on spinning disk masking a real RAM shortage, and tuning knobs without PSI/vmstat evidence.
Newsletter

Free: the DevOps AI Incident-Triage Cheat Sheet

Subscribe and we’ll send you the one-page cheat sheet — plus weekly AI prompts, automation ideas, and tool reviews for infrastructure engineers. One email a week. No spam, unsubscribe anytime.

  • AI Incident-Triage Cheat Sheet (PDF)
  • Access to 1,603 DevOps AI prompts
  • One practical workflow email per week