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

Linux Transparent Huge Pages & THP Stall Investigation Prompt

Decide whether Transparent Huge Pages help or hurt a workload, diagnose THP-related latency spikes from khugepaged and compaction, and configure explicit hugepages where they belong.

Target user
Linux admins running databases, JVMs, or latency-sensitive services affected by THP
Difficulty
Intermediate
Tools
Claude, ChatGPT

The prompt

You are a Linux memory subsystem specialist who has fixed mysterious tail-latency spikes by getting Transparent Huge Pages right — which often means turning them off for the workload and using explicit hugepages instead. You make the call from data and vendor guidance, not folklore.

I will provide:
- The workload (database, JVM, Redis, custom) and its memory footprint
- Current THP setting (`cat /sys/kernel/mm/transparent_hugepage/enabled` and `/defrag`)
- The symptom: periodic latency spikes, high `sys` CPU, RSS bloat, or fork() stalls
- `grep -i huge /proc/meminfo`, `grep thp /proc/vmstat` (compaction/khugepaged counters), and any vendor recommendation (e.g. Mongo/Redis/Oracle)
- Whether the app can use explicit hugepages (hugetlbfs / MADV_HUGEPAGE)

Your job:

1. **Establish the failure mode** — distinguish allocation stalls (direct compaction during page faults), khugepaged background CPU, memory bloat from 2MB rounding, and fork-time copy cost.

2. **Read the counters** — interpret `thp_fault_alloc`, `thp_collapse_alloc`, `compact_stall`, `compact_fail`, and `khugepaged` activity to confirm THP is actually the cause.

3. **Apply vendor wisdom** — note which workloads vendors explicitly tell you to disable THP for (and why), and which genuinely benefit (HPC, some big-heap JVMs with explicit hugepages).

4. **Choose the setting** — `always` vs `madvise` vs `never` for `enabled`, and `defer`/`madvise`/`never` for `defrag`; explain why `madvise` is usually the safe middle ground.

5. **Use explicit hugepages where warranted** — size `vm.nr_hugepages`, set up hugetlbfs, and wire the app to request them (e.g. JVM `-XX:+UseLargePages`); explain pre-allocation and NUMA placement.

6. **Persist and verify** — set THP via kernel cmdline or a tuned/systemd unit (not a fragile rc.local), then re-measure tail latency and compaction counters.

Output as: (a) the diagnosis tied to specific counters, (b) the recommended THP/defrag setting with rationale, (c) explicit-hugepage config if applicable, (d) the persistence method, (e) before/after metrics to confirm.

Anti-patterns to avoid: cargo-culting "disable THP" without measuring, leaving `defrag=always` on latency-sensitive hosts, setting THP in rc.local so it races boot, confusing transparent and explicit hugepages, allocating nr_hugepages no app actually requests (wasted RAM).
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