In questo secondo MiniTutorial tratteremo un argomento molto discusso da parecchi anni. Parliamo della gestione della memoria.
Può essere realmente migliorata, ma fra bufale, utility fasulle e suggerimenti ormai obsoleti sono molte le procedure che possono indurci a attuare tutt’altro che benefici.
Vi siete mai chiesti come mai le vecchie versioni di Windows crashavano così spesso? Ebbene si, uno dei fattori principali della cattiva stabilità del sistema era proprio la gestione approssimativa della memoria.
Da allora il sole è calato e sorto parecchie volte, ed a partire da Windows 2000, basato su un kernel nettamente migliore (infatti deriva da Windows NT) le cose sono migliorate parecchio. Se ci soffermiamo su Windows XP, possiamo già esprire un parere positivo, in quanto ha rappresentato una evoluzione per quanto riguarda la gestione della memoria, e nonostante questo ci sono ancora alcuni aspetti che possono essere migliorati.
Ma prima di procedere con l’ottimizzazione è bene fare un po’ di chiarezza fra tutti i termini tecnici che orbitano attorno al sottosistema di gestione della memoria.
Memoria Fisica
Per quel che ci riguarda, il termine memoria fisica è un sinonimo per indicare la RAM fisicamente installata sul sistema. Possiamo scoprire questo valore da andando su Pannello di Controllo -> Sistema -> Generale: e in basso a destra possiamo leggere il valore installato. 512 megabyte, 1 gigabyte o più sono ormai i valori più comuni.
Innanzitutto è doveroso dire che per lavorare al massimo delle proprie potenzialità, un sistema abbisogna di almeno 1024MB(1GB) di RAM fisica. Certo adesso con meno di 50€ ci si può portare a casa un banco da 2048 MB, che sicuramente migliorerà e non di poco la velocità generale del sistema.
File di paging, memoria virtuale e swap
E’ più o meno la medesima cosa, ma chiamata con nomi diversi a seconda dell’ambiente in cui ci si trova.
La memoria virtuale è una estensione della memoria fisica su disco fisso: quando il sistema ha riempito tutta la RAM a disposizione, trasferisce temporaneamente alcune porzioni di programmi o dati non utilizzati di recente sul disco fisso, per poi ricaricarli al momento necessario.
Questa operazione, detta appunto swap, è una delle situazioni da evitare per gestire al meglio la memoria: la differenza di prestazioni fra RAM e disco è di circa 1.000 volte, quindi è facilmente intuibile che tutte le volte in cui il sistema è costretto a swappare si verifica un calo generale delle performance. Lo abbiamo sentito tutti almeno una volta il disco che comincia a girare furiosamente e il sistema rallenta, egeneralmente è colpa del paging.
Inoltre l’accesso al disco impegna molto le capacità di calcolo del processore, e quindi le cose peggiorano ulteriormente: si può addirittura verificare un fenomeno, detto trashing, ove il sistema impiega più tempo nello swappare che non nell’eseguire “lavoro utile”!
Memoria disponibile
È la quantità di RAM non ancora impiegata, e che può essere utilizzata per caricare programmi in memoria.
Da tenere presente che il kernel, la shell (il desktop e tutte le icone, tanto per intenderci), i buffer per la gestione delle porte, le finestre per comunicare via rete e molti altri elementi del sistema operativo stesso, devono essere caricati in memoria per poter far funzionare la macchina: quindi è più che naturale ritrovarsi con la maggior parte della memoria occupata, anche quando il sistema è appena stato riavviato!
Memoria occupata
In poche parole è l’opposto della Memoria disponibile.
Cache di sistema / Cache del disco
È una porzione di RAM che il sistema utilizza per salvarvi dati utilizzati di recente, come ad esempio le icone dei vari documenti visualizzati in Esplora Risorse: in questo modo non è necessario richiederli nuovamente all’hard drive in caso siano necessari nuovamente, velocizzando quindi moltissimo le operazioni in caso fossero necessari nuovamente i medesimi file.
Prima di passare all’ottimizzazione vera e propria, dobbiamo sfatare qualche mito.
Quanti di voi girovagando per il web non sono incappati in software, discussioni o addirittura manuali che spiegavano come ottimizzare al meglio la memoria del proprio sistema? (Non alzate le mani tutti insieme, non riusciamo a contarvi così
)
I software ad esempio. Se ci ragionate un secondo, anch’essi devono essere caricati in RAM per poter funzionare, e quindi impegnano risorse. Ma il più delle volte vi ingannano con qualche effetto grafico, magari con la classica barra colorata della percentuale di RAM occupata, e si dimezza non appena cliccate sul pulsante ottimizza. O magari i deframmentatori di RAM, i quali promettono di spostare parti di programmi in esecuzione in blocchi di memoria contigua, così da migliorare le prestazioni. Ma essendo la RAM una memoria ad accesso casuale (RandomAccessMemory), è facile dedurre che gli accessi ai blocchi sono non sequenziali, e che quindi impiega lo stesso tempo a accedere all’inizio, alla fine o dalla parte opposta di una locazione da utilizzare.
Evitiamo soprattutto di manipolare il registro di sistema, poichè non esistono chiavi di registro che permettono di velocizzare Altro errore da evitare è quello di spostare il file di paging su un altra partizione. Se è vero che spostando la memoria virtuale su di una unità a disco diversa da quella su cui risede il sistema operativo porta ad interessanti vantaggi, lo stesso non si può dire se semplicemente si sposta il file su di un’altra partizione sul medesimo disco.
Di più, spostando lo swap su di un’altra partizione ma nella stessa unità disco del sistema operativo si potrebbero addirittura peggiorare le cose, poiché la testina dovrebbe fare sempre molti spostamenti fra sistema operativo e swap.
Bene, una volta sfatati un po’ di miti, possiamo addentrarci nelle varie modifiche che renderanno più performante il vostro sistema.
Requisito essenziale è quello di controllare che il computer sia esente da spyware, worm, virus, dialer o quant’altro: tutti questi programmini risiedono in memoria e spesso sono programmati talmente male da causare danni ben maggiori da quelli previsti. Molti virus inoltre utilizzano le risorse di sistema per tentare di diffondersi via mail o mediante connessioni di rete, tutte operazioni estremamente lesive per la velocità della macchina.
Assicuratevi quindi di avere sempre un antivirus attivo e sempre aggiornato sul vostro sistema.
Ricordatevi inoltre di aggiornare i driver di tutte le periferiche, ed effettuare i controlli necessari per il buon funzionamento del sistema.
Passiamo ai fatti. Portatevi su Pannello di Controllo -> Sistema ->Avanzate -> Prestazioni -> Avanzate, quindi assicuratevi che questa opzione sia impostata su Programmi: tramite questo settaggio infatti il processore darà una priorità di esecuzione maggiore alle applicazioni in primo piano. Selezionando l’altra opzione invece tutti i processi avranno la stessa priorità, sia che si tratti di servizi che di applicazioni. Impostate anche Programmi come scelta di utilizzo memoria.
Adesso dovremo deframmentare il file di swap, ma l’utility di deframmentazione inclusa in Windows non è in grado di deframmentare il file di swap, e dopo alcuni mesi di utilizzo questo può essere memorizzato in modo molto frammentato sul disco, riducendo sensibilmente i tempi di accesso.
Per ovviare a questo incoveniente possiamo utilizzare PageDefrag, una pratica utility gratuita che ci consente di deframmentare proprio il file di paginazione.
Una volta scaricato il programma (che non necessita di installazione) è sufficiente avviarlo, e quindi mettere la spunta a defragment every boot: in questo modo il file di paginazione verrà automaticamente deframmentato ad ogni avvio del sistema.
Ultimo passo è quello di settare la memoria virtuale. La migliore ottimizzazione dello swap sarebbe quella di non usarlo affatto,
o quantomeno usarlo il meno possibile. Sebbene per come sia strutturato un personal computer (e Windows in particolare) non sia possibile disattivare la memoria virtuale installare memoria addizionale limiterà sicuramente gli accessi al disco.
I vantaggi in prestazioni sono considerevoli: i tempi di accesso ad un tradizionale disco fisso motorizzato a piatti rotanti sono infatti di ordine di 1.000 volte maggiori di quelli necessari per accedere ai dati in memoria RAM.
La tecnica corretta, per avere buone prestazioni è quella di spostare il file di swap su un secondo disco fisso, qualora fosse presente, mentre mantenerlo sulla partizione di sistema in caso sulla macchina fosse installato un solo hard disk.
Spostando la memoria virtuale sul secondo disco infatti, possiamo sfruttare in parallelo le due testine di lettura/scrittura: mentre il primo disco accede ai file, il secondo può gestire la memoria virtuale, senza dover attendere la conclusione della prima operazione. In altre parole, si parallelizza il problema, mentre sfruttando un solo drive la seconda operazione non può iniziare fino a quando non sia terminata la prima.
Alcuni di voi che leggeranno questo disco diranno: E Linux allora?? Al contrario di Windows, Linux utilizza una partizione separata per gestire la memoria virtuale, anche in caso sia presente un solo disco. Sebbene questo possa sembrare in contraddizione con quello che è stato appena detto, i sistemi Linux adottano una strategia totalmente diversa per la gestione dello swap.
Mentre Windows utilizza un tradizionale grosso file sullo stesso filesystem in cui vi sono anche dati e cartelle, Linux utilizza un filesystem completamente diverso da quello utilizzato per il sistema operativo e i dati utente: lo scopo è chiaramente quello di sfruttare una disposizione diversa dei dati memorizzati su disco per poter sfruttare alcuni algoritmi più efficienti per accedere a questo particolarissimo file.
Si perde un po’ nello spostamento della testina, ma si guadagna nettamente di più nell’accesso ai dati
.
Per quanto riguarda le dimensioni dello swap, sfatiamo intanto la leggenda che lo swap va impostato 1,5/2,5 volte la quantità di RAM a disposizione, o l’utilizzo di formule matematiche assurde per trovare le dimensioni effettive da utilizzare. Quello che vi consigliamo noi è di impostare lo swap ad una dimensione di 2GB, la quale potrebbe sembrare eccessiva, ma sicuramente non rimarrete senza memoria, né avrete problemi di ridimensionamento, e sinceramente 1,5 GB di spazio in più o in meno su un disco da 80GB o più a disposizione vi facciano la differenza. Altra cosa da dire prima di chiudere questo tutorial, è che più il file di memoria virtuale è grande meglio è. Tutto al più lo spazio in eccesso non verrà utilizzato, ma se anche eccedete non avrete alcun peggioramento prestazionale!
Detto questo ci auguriamo che questo mini tutorial vi abbia chiarito un po le idee su come utilizzare al meglio la memoria RAM.
Al prossimo tutotrial.
Commentaci su FaceBook
Loading...