Memoria Virtuale di Windows XP

Questo articolo spiega come ottimizzare le prestazioni del nostro sistema Windows XP migliorando la gestione della memoria virtuale.

Questo sistema, utilizzato e consigliato da sempre nei sistemi Linux, consiste nel creare una partizione ad hoc per la memoria virtuale di Windows, ovvero creare quella che viene definita la partizione di Swap.

Prima di procedere, vediamo di capire meglio in cosa consiste il problema.

Ogni sistema ha un quantitativo di memoria volatile, ovvero la memoria RAM, limitato. Quando la capacità di questa memoria volatile si esaurisce, il sistema operativo applica una politica di paginazione: copia i dati meno utilizzati che occupano spazio nella memoria volatile, portandoli in nella memoria di massa, ovvero il nostro disco rigido. Operazioni di questo tipo sono molto comuni nel ciclo di vita di una sessione, quindi il sistema operativo è costretto ad applicare questa politica abbastanza spesso.

Questo continuo movimento di dati, scrittura e lettura dal nostro disco fisso, rallenta il sistema e aumenta il rischio di frammentazione del disco. Per questo motivo, è preferibile utilizzare una partizione del nostro disco totalmente ed esclusivamente dedicata al file di paginazione.

L’ideale, ovviamente, sarebbe di non avere nessun file di paginazione… ma questo significa avere un quantitativo di ram tale da non richiedere questa operazione. Se non si dispone di un quantitativo di RAM tale da annullare la paginazione, conviene almeno limitare i danni della frammentazione creando una partizione dedicata a questo scambio di dati tra RAM e disco fisso.

Dialog Memoria VirtualeL’operazione da compiere è semplice, ma servono un solo requisito. Una partizione di dimensione doppia rispetto alla RAM installata può bastare. Ci basta andare sulle proprietà delle risorse del computer, pagina Avanzate, pulsante Impostazioni dell’area prestazioni, pagina Avanzate e pulsante Cambia dell’area Memoria Virtuale. In questa notiamo che attualmente il nostro file di paginazione risiede nella stessa unità del sistema operativo, quello che ci interessa conoscere, per il momento, è che consiglio ci da il nostro sistema operativo per la dimensione minima della nostra partizione dedicata. Prendiamo nota quindi del numero in MB dell’etichetta Consigliata nell’area Dimensioni totali file di paging per tutte le unità. Nella figura, risulta essere 3070MB. Andiamo a creare una partizione da Pannello di controllo, Prestazioni e manutenzione, Strumenti di amministrazione, Gestione computer, Gestione disco. Li creiamo una nuova partizione. Le dimensioni consigliate della partizione sono il doppio della nostra RAM o il doppio di quella consigliata da Windows. Nel mio caso, ho creato una partizione di 6077 MB per il mio file di paginazione.

Ultimata la fase di creazione della paginazione possiamo tornare alle impostazioni della memoria virtuale. Indichiamo che la partizione contenente il sistema operativo non deve contenere nessun file di paging, ed impostiamo un file di paging a dimensioni fisse nella partizione dedicata con Dimensioni iniziali uguali a quelle consigliate e Dimensioni massime uguali alla dimensione della partizione meno 5 MB (tutte le partizioni Windows, infatti, devono sempre avere almeno 5 MB liberi).

Al prossimo avvio di Windows avremo il nostro file di paginazione (pagefile.sys) confinato nella partizione di swap e il nostro disco non soffrirà molto meno, aumentando le sue prestazioni, di prima per il problema della frammentazione dei file.

A questo punto, meglio fare partire una deframmentazione del disco (sempre da Gestione computer, Utilità di deframmentazione dischi) per sistemare i danni causati dal file di paginazione in un luogo non a lui dedicato!

!!! Aggiornamento !!!

Dopo i commenti di Giuffrolo, che ringrazio, aggiungo che per ottimizzare il procedimento conviene

  • Disabilitare l’indicizzazione della partizione di swap (Risorse del computer -> Pulsante destro sulla partizione di swap creata -> Proprietà -> Togliere la spunta da “Indicizza il disco per una ricerca rapida dei file”);
  • Creare la partizione di swap prima possibile, possibilmente subito dopo la partizione del disco che contiene il Sistema Operativo;
  • Rendere le dimensioni della partizione fissa, impostando la dimensione iniziale uguale alla dimensione massima pari alla dimensione della partizione meno 5 MB.

28 commenti su “Memoria Virtuale di Windows XP”

  1. Ciao Marco,
    permettimi qualche osservazione circa il tuo principio per l’ottimizzazione del file di swap di Windows.
    Premesso che hai dimenticato di disattivare l’indicizzazione (questa è attiva di default) sulla partizione di swap, la procedura da te descritta può ulteriormente essere ottimizzata:
    – impostare una dimensione minima uguale alla dimensione massima, uguale alla dimensione della partizione dedicata – 5 MB, permette di avere da subito il file di swap della dimensione voluta, senza andarla a modificare durante lo swapping process (altri cicli di lettura/scrittura);
    – considerando la conformità dei dischi rigidi, i primi settori scritti risultano essere i più performanti: per questo motivo, è preferibile creare un file di swap di dimensione fissa (tanto da raggiungere, insieme alla RAM instllata, un quantitativo sufficiente al nostro caso peggiore) nella stessa partizione del sistema operativo. La generazione di un file di swap di dimensioni minime e massime uguali comporta la creazione dello stesso con la minima frammentazione possibile dello stesso (l’ideale sarebbe di fare questo processo post-installazione del’S.O.).

    Con questi due punti si è massimizzata la performance sul file di swap.

  2. Ciao Giuffrolo!!!

    Hai pienamente ragione, ma prima di aggiornare l’articolo con i tuoi consigli ti faccio qualche altra domanda sulla dimensione della partizione di swap.

    Avere una partizione troppo grande rallenta il sistema per la sua gestione?
    Supponendo che il SO non abbia mai bisogno di allargare la partizione di swap, averla da 2GB o da 6GB è uguale per il sistema?

  3. Ciao Marco,
    per rispondere alla tua domanda:
    avere un file di swap dinamico comunque porta il sistema a rimodulare lo stesso con qualche ciclo lettura/scrittura (ti ricordo che siamo in ambiente windows, su linux il discorso è diverso: il file di swap non è mai usato tranne quando la RAM disponibile è realmente in esaurimento); inoltre, se il file di swap è presente nella stesa partizione del SO, allora la frammentazione “potrebbe” essere presente, ma sicuramente il DB dell’indicizzazione (che non va disabilitato su C:) si aggiornerà di conseguenza.
    Avere una immagine di swap fissa da 2GB o da 6GB non cambia nulla…a patto che sia fissa (certo, 6GB sono davvero tanti: immagino, poi, che siano supportati da un bel quantitativo di RAM fisica).

    A presto.

  4. Ottimo articolo.
    La partizione dedicata al file di swap puo anche essere su un altro disco fisso oppure deve essere necessariamente su C.
    Grazie per la cortese risposta e distinti saluti.
    Virgilio

  5. Può anche stare su un altro disco fisso, anzi è molto più performate (specialmente se è la prima partizione per i motivi detti da Giuffrolo).

  6. Mi chiamo mariosalvo,interessante il discorso e vorrei creare anche io una partizione solo per il file swap, ho un disco c con sistema operativo da 160 gb un disco d da 80 gb, con ram da 1gb.

    Fino a come creare la partizione non ci sono problemi , o in C o in D tutto chiaro,non sono riuscito a capire questo passaggio:

    Rendere le dimensioni della partizione fissa, impostando la dimensione iniziale uguale alla dimensione massima pari alla dimensione della partizione -5MB.Potresti spiegarmelo con un esempio per favore?
    Vi ringrazio anticipatamente saluti da Mariosalvo

  7. Scusate un’ altra domanda: nel creare una nuova partizione i dati che ci sono sul disco non vengono dannegiati vero?E’ vero che la partizione deve essere creata in FAT32, perche’ piu’ veloce di NFTS?
    Mio sistema oprativo:windows xp HOME in NTFS
    ram 1 GB
    HD con sistema operativo 160 gb ( C )
    HD in piu’ da 80 gb ( D )

    Potreste per favore spiegarmi da quanti gb deve essere la partizione da creare per il file SWAP , se conviene creala in C o in D , e spiegarmi con qualche esempio questo passaggio perche’ non mi e’ chiaro:
    Rendere le dimensioni della partizione fissa, impostando la dimensione iniziale uguale alla dimensione massima pari alla dimensione della partizione -5MB.Potresti spiegarmelo con un esempio per favore?
    Vi ringrazio anticipatamente saluti da Mariosalvo

    P.S. Scusate se ho riscritto il tutto, non mi e’ sembrato tanto chiaro il primo commento lasciato.

  8. Per prima cosa bisognerebbe capire che tipo di hard disk hai!

    Diciamo che in linea generale meglio mettere la partizione di swap all’inizio del disco più veloce (quello che riesce a fare più giri al minuto, lo trovi nelle specifiche del tuo hard disk) e anche che il disco rigido sia diverso da quello dove è installato il sistema operativo.

    Rispondo velocemente alle tue domande:
    – Creando una nuova partizione non vengono danneggiati i dati esistenti, ma è una operazione delicata… devi stare attento a come partizioni. Un software molto semplice per effettuare le partizioni è Acronis Disk Director Suite (http://www.acronis.it/);
    – Meglio creare le partizioni in NTFS se devi usarle solo con Windows, hai molte più opzioni attivabili.

    Avendo 1 GB di ram ti consiglio di creare una partizione di 2056 MB.
    I passi da seguire sono questi:
    – Crea la partizione da 2056 MB
    – Doppio click su Risorse del Computer -> Pulsante destro sulla partizione appena creata -> Proprietà
    – Deseleziona il check da Indicizza il disco per una rapida ricerca dei file
    – Start -> Pulsante destro su Risorse del Computer -> Proprietà
    – Pagina Avanzate -> Pulsante Impostazioni dell’area Prestazioni
    – Pagina Avanzate -> Pulsante Cambia dell’area Memoria Virtuale
    – Seleziona la partizione da 2056 MB che hai creato
    – Seleziona Dimensioni Personalizzate
    – Inserisci il numero 2048 sia in Dimensioni Iniziali che in Dimensioni massime

    Finito!

    Spero di essere stato più chiaro adesso! 😉

  9. Anche io una domanda. Creando la partizione dedicata solo al file di swap sullo stesso hard disk del sistema operativo, subito dopo la partizione di win, l’indicizzazione in questo caso si può levare dalla sola partizione del file di swap oppure la cosa è fattibile solo per l’intero HD?

    Io ha 2 Gb di ram per non sbagliare nell’impostare le dimensioni minime e massime qunto metto?

    Grazie

    Antonio

  10. Direi di lasciare l’indicizzazione nelle altre partizioni (specialmente se ricerchi in modo assiduo documenti).
    Per 2 GB di ram direi che ti servono 4 GB di spazio per la partizione di swap, ma se hai problemi di spazio anche 3 GB vanno benissimo.

  11. Infatti avevo deciso di inserire 4096 come valore sia min che max.

    Per l’indicizzazione ancora non mi è chiara una cosa. Faccio un esempio.

    Io ho un HD con 4 partizioni. Nella prima c’è il sistema operativo, nella seconda ci vorrei mettere lo swap della memoria virtuale e nelle altre due dati vari.

    Ora posso dire che solo nella seconda partizione l’indicizzazione la voglio levare? Oppure se si leva da una sola di queste partizioni automaticamente si leva su tutto quell’HD visto che è un solo pezzo fisico?

    Non so se mi sono spiegato bene

    Attendo info al più presto prima di procedere.

    Grazie

  12. Scusa io nell’etichetta consigliata come sopra in figura ho 4605mb, da come ho capito devo fare una partizione con il doppio dello spazio giusto? Ma una volta arrivato a gestione del disco come faccio la partizione? Io ho un acer aspire 5920g nato già con una partizione D poi io per avere anche xp ho fatto una partizione dal disco d, ho tolto 50gb e fatto il disco F(XP) ora su che disco devo fare la partizione ? sul disco f giusto? Se si devo prima fare la defrementazione?Per favore mi potresti dire passo passo come fare questa cosa, grazie di cuore
    Vaino

  13. Si, tutto giusto!
    Prima di fare la partizione è sempre consigliato fare una deframmentazione. Per partizionare il disco ti serve un programma di gestione del disco.

    Io ho usato sia Partition Magic che Acronis Disk Director, ma ne esistono tantissimi. Per questa delicata operazione, se è la tua prima volta, fatti assistere da un tuo amico più esperto! 😉

  14. ciao a tutti, le descrizioni sono state utilissime , vorrei fare una domanda il disco da creare a parte per i file paping deve essere con capacita pari al doppio esatto della ram oppure puo essere diverso anche di poche ram

  15. Diciamo che teoricamente il disco dedicato alla swap deve essere poco più grande della ram installata nel sistema, ma per grandi quantitativi di ram questo può anche limitarsi ai 2/3 GB.

  16. ciao a tutti. in questo periodo sto diventando matto perché il mio povero computerino è lentissimo. non ha virus o altro. lo pulisco e deframmento con regolarità. non ho programmi pesanti. lo uso giusto per scrivere, sentire musica, vedere film e andare su internet. l’ho fatto guardare anche da un ragazzo che lavora in ambito informatico ma il mio vecchio packardbell da 384 MB di RAM zoppica ancora vistosamente. come devo settare la questione della memoria? adesso sia C che F li ho messi su dimensioni gestite dal sistema ma leggendo i vostri consigli so che devo cambiare qualcosa. qualcuno sarebbe così gentile da descrivermi passo passo come fare a settare il mio xp nella maniera migliore? grazie di cuore.
    (diobuono sto preparando tesi magistrale e senza computer sono fregato)

  17. @Alfonso
    Mmm… visto che sei in un momento critico meglio non fare nulla! Più cose fai più probabilità hai di incasinare il sistema! Dovresti spostare le partizioni esistenti sul tuo sistema… e non è sicuramente una operazione da fare in momenti come quelli che stai passando tu.

    Ma se vuoi farlo, nel tuo caso ti consiglio una partizione da 768 MB o da 1024 MB tanto per tenersi larghi.

  18. grazie della risposta celere Marco. devo fare qualcosa credimi e sposterò le partizioni esistenti sul sistema. mi potresti descrivere passo passo come devo fare? grazie davvero.

  19. quando accedo al pannello Gestione disco, come creo una nuova partizione?
    quando accedo al pannello Memoria virtuale che numeri devo mettere in Dimensioni personalizzate? e li devo scrivere per tutte e due i dischi C e F?

  20. @Alfonso

    Per creare una nuova partizione devi avere spazio non partizionato libero nel disco. Probabilmente non hai spazio non partizionato, ed è proprio questa l’operazione delicata che ti sconsiglio di fare se non puoi rischiare! Per ridimensionare una partizione esistente devi usare un programma ad hoc (windows di base non può ridimensionare una partizione). Uno di questi programmi è Partition Magic. La nuova partizione (che prenderà probabilmente il nome di G) deve essere grande, nel tuo caso, 1024 MB e sarà quella la tua partizione di swap.

  21. boh, io ti ringrazio tanto Marco ma per me stai parlando arabo e non farò nulla. lascio le dimensioni sia del disco C che del disco F gestiti dal sistema anche se il computer continua ad essere lentissimo. d’altra parte non so cosa fare. ciao e grazie

  22. Il sistema operativo Windows usa sempre la paginazione anche quando c’è spazio in ram.
    Il file di paging (non di swap) viene utilizzato,infatti, per creare l’immagine dei processi, immagine che è sempre su hd. tramite la paginazione su richiesta (in presenza di page fault) vengono caricate le pagine mancanti. Quindi la memoria non viene swappata su disco ma viene gestito l’avvidentamento delle pagine virtuali che occuperanno frame fisici tramite le cosiddette strategie di sostituzione.
    Riguardo alla posizione del file di paging voglio ricordare che windows lo posiziano in un punto intermedio del disco per ridurre gli spostamenti dell testina. La sua posizione e dimensione sono fisse per sfruttare l’accesso diretto ai blocchi senza dover ricorre ai servizi del file system che rallenterebbero l’accesso ai blocchi.
    Spostare il file di paging su una partzione dedicata ha il solo effetto di allontanare la posizione dello stesso da quella posizione privilegiata destinatagli dal S.O. e tanto comporterà per forza un aumento dei seek time per il fatto che la testina dovrà compiere movimenti maggiori.
    I vantaggi dei file system Microsoft non sono ottenibili dalle implementazioni dei file system di tipo unix che utilizzando tabelle i-node anzichè tavole di allocazione dei file.
    Per questo motivo in linux si crea una partizione raw a cui si accede direttamente senza file system (ma c’è sempre lo svantaggio che tale partizione è lontana dal punto medio del disco peggiorando cosi le prestazioni del disco). Se la creazione di una partizione separata per il file di paging fosse stata la migliore implementazione, state tranquilli che Microsoft l’avrebbe fatta. Vi consiglio di lasciare pertanto le cose come sono.
    Solo per chi utilizza due HD può essere veramente interessante spostare il file di paging sul sencondo che dovrà essere usato solo per questo. In questo modo si beneficerà di un accesso esclusivo al hd del file di pging migliorando le prestazioni.
    Consiglio a tutti di leggere un un buon testo di sistemi operativi come tanenbaum

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.