Insufficient HugePages allocation results in excessive expansion of PageTables, leading to severe memory pressure

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content