| Red Hat Enterprise Linux 4: Introduzione al System Administration | ||
|---|---|---|
| Indietro | Capitolo 4. Memoria virtuale e fisica | Avanti |
Mentre la memoria virtuale rende possibile per i computer la gestione di applicazioni più complesse, è necessario, come con qualsiasi tool molto potente,anche far fronte al suo lato negativo. Tale lato negativo è rappresentato dalla prestazione — un sistema operativo con memoria virtuale ha molto più da elaborare rispetto ad un sistema operativo incapace di supportare la stessa memoria virtuale. Ciò significa che non si avrà mai una buona prestazione con la presenza di memoria virtuale quando la stessa applicazione risiede 100% nella memoria stessa.
Tuttavia, ciò non rappresenta un problema insormontabile. I benefici di una memoria virtuale sono veramente molteplici, e con un pò d'impegno è possibile ottenere una buona prestazione. È consigliabile esaminare le risorse del sistema che sono state influenzate da un uso eccessivo del sottosistema della memoria virtuale.
Per un momento, prendete in considerazione quello che avete letto in questo capitolo, e considerate le risorse del sistema usate per una attività molto intensa di swapping e page fault:
RAM — È normale che la RAM disponibile sia bassa (altrimenti non ci sarebbe bisogno di uno swap o page fault).
Disco — Mentre lo spazio del disco potrebbe non essere intaccato, potrebbe esserlo invece la larghezza della banda I/O (a causa di attività swapping e paging molto pesante).
CPU — La CPU espande i cicli eseguendo il processo necessario per supportare la gestione della memoria, e impostando le operazioni necessarie I/O per le operazioni di swapping e paging.
La natura correlata di questi carichi, rende più semplice la comprensione di come la carenza delle risorse possa causare dei problemi alla prestazione.
È solo necessario avere una RAM troppo piccola, un'attività page fault molto intensa, e un sistema che opera molto vicino ai propri limiti in termini di CPU o disco I/O. A questo punto, il sistema viene affetto da thrashing, ne consegue quindi, una prestazione molto povera.
Nel migliore dei casi, l'overhead dovuto dal supporto della memoria virtuale presenta un carico minimo aggiuntivo per un sistema configurato in modo corretto:
xRAM — RAM sufficiente per tutti i working set in grado di gestire qualsiasi page fault [1]
Disco — A causa della limitata attività di page fault, la larghezza della banda del disco I/O verrà influenzata in maniera molto limitata
CPU — La maggior parte dei cicli CPU sono dedicati all'esecuzione delle applicazioni invece di eseguire il codice di gestione della memoria del sistema
È da ricordare quindi che l'impatto sulle prestazioni della memoria virtuale è minimo se essa viene usata il meno possibile. Questo significa che per avere una buona prestazione del sottosistema della memoria virtuale, bisogna avere una RAM sufficiente.
La fase successiva (ma meno importante) è avere una capacità sufficiente di CPU e del disco I/O. Tuttavia, ricordate che queste risorse aiutano a preservare la prestazione del sistema nei riguardi di attività di swapping e faulting molto elevata; questi requisiti fanno poco per aiutare la prestazione del sottosistema della memoria virtuale (anche se gli stessi possono avere un certo impatto nelle prestazioni generali del sistema).
| [1] | Un sistema attivo incontrerà sempre qualche livello di page fault, a causa della loro introduzione nella memoria di applicazioni appena lanciate. |