Hugepages

Hugepages zijn grote geheugenpagina's die de Linux-kernel kan toewijzen aan processen. Waar een standaard geheugenpagina 4 KB groot is, zijn hugepages 2 MB of 1 GB. Dit vermindert de overhead van geheugenbeheer bij toepassingen die veel geheugen gebruiken.

Waarom hugepages?

De processor houdt een TLB (Translation Lookaside Buffer) bij — een cache die virtuele geheugenadressen vertaalt naar fysieke adressen. Bij standaard pagina's van 4 KB raken de TLB-vermeldingen snel vol bij grote werkloads. Met hugepages van 2 MB past 512× zoveel geheugen in dezelfde TLB.

Gebruik

Hugepages worden ingezet door:

  • Databases (PostgreSQL, Oracle, MySQL)
  • Virtualisatie (KVM/QEMU VM's)
  • High-performance computing

Transparent Huge Pages

Linux heeft ook Transparent Huge Pages (THP): de kernel probeert automatisch hugepages toe te wijzen zonder dat de applicatie dit hoeft aan te vragen. Voor sommige werkloads (Redis, MongoDB) werkt THP contraproductief.

cat /sys/kernel/mm/transparent_hugepage/enabled

Zie ook

  • kernel — geheugenbeheer
  • oom — geheugengebrek
  • swap — uitwijkgeheugen
  • numa — geheugenarchitectuur op multi-socket systemen
linuxkernelgeheugen