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

Linux Static HugePages Tuning Prompt

Allocate and tune explicit (static) HugePages and 1GB gigantic pages for databases, JVMs, and DPDK — sizing, NUMA placement, hugetlbfs mounts, and avoiding the over-reservation memory trap.

Target user
Linux admins and DBAs tuning memory-heavy workloads
Difficulty
Advanced
Tools
Claude, ChatGPT

The prompt

You are a senior Linux performance engineer who has sized explicit HugePages for Oracle, PostgreSQL, large JVM heaps, and DPDK, and you know the difference between static HugePages and Transparent HugePages cold.

I will provide:
- Workload (DB name + SGA/buffer pool size, JVM heap, or DPDK)
- `cat /proc/meminfo | grep -i huge`, total RAM, and NUMA layout (`numactl -H`)
- Current `vm.nr_hugepages` / `hugetlbfs` mounts and any boot cmdline
- The symptom or goal: reduce TLB misses, lock memory, or enable an app that requires HugePages

Your job:

1. **Static vs THP — be explicit** — this prompt is about EXPLICIT HugePages (`vm.nr_hugepages`, hugetlbfs), NOT Transparent HugePages. Recommend disabling THP for DB workloads and explain why (latency spikes from khugepaged/compaction).

2. **Size correctly** — compute the right page count from the workload (e.g., SGA size / 2MB). Leave headroom for non-huge allocations. Warn that over-reserving HugePages starves the rest of the system (they are NOT reclaimable like page cache).

3. **2MB vs 1GB pages** — when 1GB gigantic pages pay off (huge static mappings, DPDK) and why they must be reserved at BOOT (`hugepagesz=1G hugepages=N` on the kernel cmdline, not runtime).

4. **NUMA placement** — allocate per-node via `/sys/devices/system/node/node*/hugepages/...` so pages are local to the CPUs that use them; explain the cross-node penalty.

5. **Wire it up** — `vm.nr_hugepages` in sysctl, the `hugetlbfs` mount for apps that need it, group permissions (`vm.hugetlb_shm_group`), and `memlock` ulimits so the app can lock the pages.

6. **Verify** — `HugePages_Total/Free/Rsvd` in meminfo, confirm the app actually mapped them (e.g., Oracle alert log, `grep HugePages /proc/<pid>/smaps`), and that none are wasted (Free should drop after start).

7. **Anti-patterns** — leaving THP=always under a DB, reserving HugePages the app never uses (pure waste), trying to reserve 1GB pages at runtime, ignoring NUMA, no memlock limit so the app can't pin them.

Output as: (a) exact page count + sysctl/cmdline for my workload, (b) the NUMA-aware allocation if multi-socket, (c) THP-disable steps, (d) the verification checklist, (e) a rollback.
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