Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. Huge pages e transparent huge pages

La memoria viene gestita in blocchi conosciuti come pagine. Una pagina è composta da 4096 byte. 1MB di memoria equivale a 256 pagine; 1GB di memoria equivale a 256,000 pagine, ecc. Le CPU presentano una unità di gestione della memoria interna che contiene un elenco di pagine, con ogni pagina riferita come voce tabella della pagina.
Sono disponibili due metodi di gestione di memoria molto grande del sistema:
  • Aumento del numero di voci della tabella della pagina nell'unità di gestione della memoria hardware
  • Aumento della dimensione della pagina
Il primo metodo è molto costoso poichè l'unità di gestione della memoria hardware nei processori moderni supporta solo centinaia o migliaia di voci. Altresì, gli algoritmi di gestione della memoria e hardware che operano correttamente con migliaia di pagine (megabyte di memoria), possono non operare in modo ottimale con milioni (o miliardi) di pagine. Tale impostazione può presentare alcuni problemi: quando una applicazione ha bisogno di usare un numero di pagine di memoria maggiore rispetto al numero supportato dall'unità di gestione, il sistema implementa una gestione della memoria basata sul software, causando una esecuzione più lenta dell'intero sistema.
Red Hat Enterprise Linux 6 implementa il secondo metodo tramite l'uso delle huge pages.
Le huge page sono blocchi di memoria con una misura di 2MB e 1GB. Le tabelle usate dalle pagine di 2MB sono idonee per la gestione di gigabyte multipli di memoria, mentre quelle usate per pagine di 1GB sono idonee per misure pari a terabyte di memoria.
Assegnare le huge page al momento dell'avvio. La gestione manuale delle huge page è difficoltosa poichè spesso sono necessarie modifiche importanti al codice per permettere un loro uso effettivo. Per questo Red Hat Enterprise Linux 6 permette anche l'uso delle transparent huge pages (THP). THP è un livello di astrazione in grado di automatizzare numerosi aspetti relativi alla creazione, gestione ed utilizzo delle huge page.
THP minmizza la maggior parte della complessità nell'uso delle huge page da parte degli amministratori del sistema o sviluppatori. L'obiettivo di THP è quello di migliorare le prestazioni; gli sviluppatori (sia quelli della comunità che quelli di Red Hat) hanno eseguito test e ottimizzato THP su una gamma estesa di sistemi, configurazioni, applicazioni, e carichi di lavoro. Ciò permette alle impostazioni predefinite di THP di migliorare le prestazioni di numerose configurazioni.
Da notare che THP attualmente mappa solo regioni della memoria anonime come ad esempio lo spazio di stack e heap.