Red Hat Training

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

Capitolo 5. Memoria

Consultare questo capitolo per una panoramica sulle funzioni di gestione della memoria con Red Hat Enterprise Linux e su come utilizzare le suddette funzioni per ottimizzarne l'uso.

5.1. Huge Translation Lookaside Buffer (HugeTLB)

Gli indirizzi della memoria fisica sono tradotti in indirizzi della memoria virtuale come parte del processo di gestione della memoria. La relazione mappata di indirizzi fisici e virtuali viene archiviata in una struttura dati conosciuta come tabella della pagina. Poichè la lettura della tabella per ogni mappatura è un processo che richiede molto tempo e molte risorse, è disponibile una cache per indirizzi usati più di recente. Questa cache viene chiamata Translation Lookaside Buffer (TLB).
Tuttavia il TLB può solo memorizzare in cache un certo numero di mappature degli indirizzi. Se una mappatura desiderata non è pesente nel TLB, sarà necessario leggere la tabella della pagina per determinare la mappatura dell'indirizzo fisico a virtuale. Questo processo è conosciuto come "TLB miss". Le applicazioni con requisiti di memoria molto grandi possono essere interessate maggiormente da un TLB miss, rispetto alle applicazioni con requisiti di memoria minori a causa della relazione presente tra i requisiti di memoria e la dimensione delle pagine usate per memorizzare in cache le mappature degli indirizzi nel TLB. Poichè ogni TLB miss richiede un processo di lettura della tabella, è importante evitare questi processi quando possibile.
Huge Translation Lookaside Buffer (HugeTLB) permette una gestione della memoria con segmenti molto grandi per l'archiviazione contemporanea in cache di un numero maggiore di mappature dell'indirizzo. Questa impostazione riduce la possibilita di risultati negativi TLB, e permette di avere migliori prestazioni con applicazioni con requisiti di memoria molto grandi.
Le informazioni sulla configurazione di HugeTLB sono disponibili nella documentazione del kernel: /usr/share/doc/kernel-doc-version/Documentation/vm/hugetlbpage.txt