Insufficient HugePages allocation results in excessive expansion of PageTables, leading to severe memory pressure
Issue
- The system is highly loaded, under high memory pressure.
- Significant growth of PageTables is observed.
proc/meminfo
---
MemTotal: 198064408 kB
MemFree: 17773544 kB
MemAvailable: 25111912 kB
Buffers: 22880 kB
Cached: 56739016 kB
SwapCached: 2250624 kB
Active: 45941504 kB
Inactive: 17868432 kB
Active(anon): 44585508 kB
Inactive(anon): 10605308 kB
Active(file): 1355996 kB
Inactive(file): 7263124 kB
...
SwapTotal: 121630712 kB
SwapFree: 84829628 kB
...
Slab: 2442184 kB
SReclaimable: 1758232 kB
SUnreclaim: 683952 kB
...
PageTables: 109033236 kB <<-----
...
CommitLimit: 218565764 kB
Committed_AS: 106736164 kB
...
HugePages_Total: 2048
HugePages_Free: 117
HugePages_Rsvd: 5
HugePages_Surp: 0
Hugepagesize: 2048 kB
...
- Many tasks are entering D-state showing call traces just like this:
[<0>] __lock_page+0x12d/0x230
[<0>] shmem_swapin_page+0x4ea/0x630
[<0>] shmem_getpage_gfp+0x1fc/0x8a0
[<0>] shmem_fault+0x78/0x220
[<0>] __do_fault+0x38/0xc0
[<0>] handle_pte_fault+0x55d/0x880
[<0>] __handle_mm_fault+0x453/0x6c0
[<0>] handle_mm_fault+0xc1/0x1e0
[<0>] do_user_addr_fault+0x1b9/0x450
[<0>] do_page_fault+0x37/0x130
[<0>] page_fault+0x1e/0x30
- The call trace just right above is indicative of major page fault on tmpfs/shmem that is bringing a swapped‑out page back into RAM.
- Since many tasks show the same stack, it appears likely a swap‑in storm.
Environment
- Red Hat Enterprise Linux 8
- Oracle Database Server
- A RHEL virtual machine hosted by a VMware hypervisor
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.