Configurazione di pagine enormi in Oracle Linux
Presenta le enormi funzionalità di Oracle Linux e punta alla guida alla configurazione HugeTLB e Transparent HugePages.
In Oracle Linux, la memoria fisica viene gestita in blocchi di dimensioni fisse chiamati pagine. Nell'architettura x86_64, la dimensione predefinita di ogni pagina è di 4 KB.
Il kernel memorizza i mapping tra indirizzi virtuali e fisici per le pagine in una struttura dati nota come tabella delle pagine. Tuttavia, i lookup delle tabelle di pagina richiedono molte risorse, pertanto gli indirizzi utilizzati più di recente vengono inseriti nella cache TLB (Translation Lookaside Buffer) della CPU per un recupero più rapido. Quando la CPU deve soddisfare una richiesta di mappatura degli indirizzi, la CPU esegue prima una ricerca nella cache TLB. Un colpo TLB descrive la CPU che trova l'indirizzo nella cache TLB. Un errore TLB descrive che la CPU non è in grado di trovare il mapping degli indirizzi richiesto nella cache, nel qual caso il sistema eseguirà una ricerca a uso intensivo di risorse nella tabella delle pagine per recuperare le informazioni sull'indirizzo.
La dimensione di pagina predefinita di 4 KB è adatta alla maggior parte delle applicazioni. Tuttavia, per le applicazioni che funzionano con grandi quantità di memoria, il numero di pagine da 4 KB richieste può essere elevato e può portare a un numero elevato di errori TLB e a un sovraccarico delle prestazioni. Oracle Linux offre enormi funzionalità di pagina in modo che le applicazioni che richiedono più memoria possano soddisfare i propri requisiti con meno pagine.
Pagine HugeTLB
Le pagine HugeTLB sono anche chiamate pagine statiche enormi.
Con la funzione pagine HugeTLB, è possibile prenotare pool di pagine enormi, ognuna di una quantità specificata, per ogni dimensione di pagina enorme. Le opzioni di dimensione delle pagine di grandi dimensioni disponibili sulle piattaforme x86_64 sono 2 MB e 1 GB.
sulle procedure ottimali:
- Effettuare richieste al kernel per pagine statiche di grandi dimensioni il più vicino possibile al tempo di avvio, quando il verificarsi della frammentazione della memoria è al minimo.
- Le pagine enormi possono ridurre la quantità di memoria disponibile per il sistema. Pertanto, quando si richiede un pool di pagine di grandi dimensioni riservato, assicurarsi che il pool non sia sovradimensionato e che l'accesso alla memoria del sistema non sia influenzato.
HugePages trasparente
La funzione Transparent HugePages (THP) è abilitata per impostazione predefinita in Oracle Linux. Il kernel assegna automaticamente pagine enormi ai processi e sulle piattaforme x86_64 THP assegna solo pagine da 2 MB.
THP può essere eseguito nelle seguenti modalità:
system-wide(impostazione predefinita): il kernel assegna pagine di grandi dimensioni ai processi che utilizzano grandi aree di memoria virtuale contigue ogni volta che è possibile farlo.per-process:Il kernel assegna solo pagine di grandi dimensioni ai processi applicativi che richiedono esplicitamente pagine di grandi dimensioni tramite la chiamata di sistemamadvise().
Per ulteriori informazioni sulla configurazione di THP, vedere Configurazione di Transparent HugePages