Gestione di RAM, memoria virtuale, file di paging e della memoria in Windows

Traduzione articoli Traduzione articoli
Identificativo articolo: 2160852 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo sono contenute informazioni di base relative all'implementazione della memoria virtuale sulle versioni di Windows a 32 bit. Queste informazioni fanno riferimento a Windows 2000, Windows XP, Windows Server 2003, Windows Vista e Windows Server 2008. Queste informazioni non sono valide per Windows Server 2008 R2, poiché è disponibile soltanto in versione a 64 bit.

Informazioni

Nei moderni sistemi operativi quali Windows, le applicazioni e molti processi di sistema fanno sempre riferimento alla memoria utilizzando indirizzi di memoria virtuale. Gli indirizzi di memoria virtuale vengono automaticamente tradotti in indirizzi (RAM) reali dall'hardware. Soltanto gli elementi centrali del kernel del sistema operativo riescono a ignorare tale traduzione dell'indirizzo e usano direttamente gli indirizzi di memoria reale.

La memoria virtuale viene comunque utilizzata, anche quando la memoria richiesta da tutti i processi in esecuzione non supera il volume di memoria RAM installata sul sistema.

Una versione estesa di questo articolo è disponibile sul blog Windows di Bruce Sanderson. Per visualizzare l'articolo, visitare il seguente blog:
Informazioni generali su Windows di Bruce Sanderson: RAM, memoria virtuale, file di paging e argomenti simili

Processi e spazi degli indirizzi

A tutti i processi (ad esempio, le applicazioni eseguibili) in esecuzione su una versione di Windows a 32 bit vengono assegnati indirizzi di memoria virtuale (uno spazio di indirizzamento virtuale), che varia da 0 a 4.294.967.295 (2*32-1 = 4 GB), indipendentemente dalla quantità di memoria RAM installata sul computer.

Nella configurazione predefinita di Windows, 2 gigabyte (GB) di tale spazio di indirizzamento virtuale sono dedicati all'utilizzo privato di ogni processo. I restanti 2 GB vengono condivisi tra i processi e il sistema operativo. In genere, le applicazioni (ad esempio, Blocco note, Word, Excel e Acrobat Reader) utilizzano soltanto una parte dei 2 GB dello spazio di indirizzo privato. Le pagine di memoria RAM vengono assegnate dal sistema operativo soltanto alle pagine di memoria virtuale in uso. 

L'opzione Estensione indirizzo fisico (PAE, Physical Address Extension) rappresenta la funzionalità dell'architettura Intel a 32 bit che estende l'indirizzo della memoria fisica RAM a 32 bit. L'opzione PAE non modifica la dimensione dello spazio di indirizzamento virtuale (resta pari a 4 GB), ma soltanto il volume della memoria RAM in uso che può essere indirizzata dal processore. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
268363 Intel Physical Addressing Extensions (PAE) in Windows 2000
La traduzione tra l'indirizzo di memoria virtuale a 32 bit utilizzato dal codice in esecuzione all'interno di un processo e l'indirizzo della memoria RAM a 36 bit viene gestita in modo automatico e chiaro dall'hardware del computer attenendosi alle tabelle di traduzione gestite dal sistema operativo. Tutte le pagine di memoria virtuale (indirizzo a 32 bit) possono essere associate a qualsiasi pagina di RAM fisica (indirizzo a 36 bit).

Nell'elenco riportato di seguito viene descritta la quantità di memoria RAM supportata dalle varie versione ed edizioni di Windows (a maggio 2010):
Riduci questa tabellaEspandi questa tabella
Windows NT 4.04 GB
Windows 2000 Professional4 GB
Windows 2000 Standard Server4 GB
Windows 2000 Advanced Server8 GB
Windows 2000 Datacenter Server32 GB
Windows XP Professional4 GB
Windows Server 2003 Web Edition2 GB
Windows Server 2003, Standard Edition4 GB
Windows Server 2003 Enterprise Edition32 GB
Windows Server 2003 Datacenter Edition64 GB
Windows Vista4 GB
Windows Server 2008 Standard4 GB
Windows Server 2008 Enterprise64 GB
Windows Server 2008 Datacenter64 GB
Windows 74 GB

File di paging

La memoria RAM è una risorsa limitata, mentre per scopi più pratici, la memoria virtuale è illimitata. È possibile che vengano eseguiti molti processi e che ciascuno di essi disponga di 2 GB di spazio di indirizzamento virtuale privato. Quando la quantità di memoria utilizzata da tutti i processi supera la memoria RAM disponibile, il sistema operativo sposta le pagine (di 4 KB) di più spazi di indirizzamento virtuale nel disco rigido del computer. In questo modo, viene liberata la memoria RAM per altri utilizzi. Nei sistemi Windows, queste pagine "spostate" vengono memorizzate in più file (file Pagefile.sys) nella radice di una partizione. In ogni partizione del disco può essere presente soltanto uno di questi file. Il percorso e la dimensione del file di paging vengono configurati in Proprietà del sistema. Fare clic su Avanzate, su Prestazioni, quindi selezionare il pulsante Impostazioni.

Gli utenti chiedono di frequente come determinare la dimensione da assegnare al file di paging. Non esiste un solo modo per rispondere a questa domanda, poiché dipende dalla quantità di memoria RAM installata e dalla quantità di memoria virtuale richiesta dal carico di lavoro. Se non sono disponibili ulteriori informazioni, si consiglia di impostare una quantità pari a 1,5 volte la quantità di memoria RAM installata. Nei sistemi server, è probabile che l'utente voglia disporre di memoria RAM sufficiente al fine di evitare mancanze e non utilizzare il file di paging. In tali sistemi, non è necessario mantenere un file di paging di grandi dimensioni. Al contrario, se lo spazio su disco è abbondante, mantenere un file di paging di grandi dimensioni (ad esempio, pari a 1,5 volte la dimensione della memoria RAM installata) non causa problemi ed elimina la preoccupazione relativa alla dimensione.

Prestazioni, limiti dell'architettura e memoria RAM

Su tutti i sistemi di computer, l'aumento del carico di lavoro (il numero di utenti, il volume del lavoro) comporta una riduzione delle prestazioni, ma non in maniera lineare. Un aumento eccessivo del carico o della domanda comporta una significativa riduzione delle prestazioni. Ciò significa, che alcune risorse hanno una esigua disponibilità e sono diventate un collo di bottiglia.

In questo caso, la risorsa che dispone di poca memoria non può essere aumentata. È stato raggiunto un limite dell'architettura. Di seguito sono riportati alcuni dei limiti dell'architettura più frequenti in Windows:
  • 2 GB di spazio di indirizzamento virtuale condiviso per il sistema (kernel)
  • 2 GB di spazio di indirizzamento virtuale per ogni processo (modalità utente)
  • 660 MB di memoria PTE di sistema (Windows Server 2003 e versioni precedenti)
  • 470 MB di archiviazione del pool di paging (Windows Server 2003 e versioni precedenti)
  • 256 MB di archiviazione del pool non di paging (Windows Server 2003 e versioni precedenti) 
Ciò è valido in modo specifico per Windows Server 2003, ma può essere valido anche per Windows XP e Windows 2000. Tuttavia, Windows Vista, Windows Server 2008 e Windows 7 non presentano questi limiti dell'architettura. I limiti per gli utenti e per la memoria kernel (numero 1 e 2, qui) sono i medesimi, ma le risorse kernel quali PTE e vari pool di memoria sono dinamici. Questa nuova funzionalità abilita sia la memoria di paging che quella non di paging. Inoltre, si abilita l'aumento dei PTE e del pool di sessione oltre i limiti sopra citati, fino a esaurire tutto il kernel.

Alcune affermazioni individuate e riportate, come quella riportata di seguito: 
"Con un Terminal Server, i 2 GB di spazio di indirizzamento condiviso vengono utilizzati prima dell'utilizzo dei 4 GB di memoria RAM".
In alcuni casi, tale affermazione è vera. Tuttavia, è necessario monitorare il sistema per stabilire se tale affermazione è valida o meno per il proprio sistema. In alcuni casi, affermazioni di questo tipo rappresentano conclusioni da ambienti Windows NT 4.0 o Windows 2000 specifici e non sono necessariamente valide per Windows Server 2003. Infatti, a Windows Server 2003 sono state apportate importanti modifiche che riducono la probabilità di raggiungere i limiti dell'architettura. Ad esempio, alcuni processi del kernel sono stati spostati in processi non kernel, in modo da ridurre la quantità di memoria utilizzata nello spazio di indirizzamento virtuale condiviso.

Monitoraggio della memoria RAM e utilizzo della memoria virtuale 

Performance Monitor è il principale strumento per monitorare le prestazioni di sistema e per identificare la posizione del collo di bottiglia. Per avviare Performance Monitor, fare clic su Start, quindi su Pannello di controllo, selezionare Strumenti di amministrazione, quindi fare doppio clic su Performance Monitor. Di seguito è riportato un riepilogo di alcuni importanti contatori e cosa indicano:
  • Memoria, byte vincolati: questo contatore corrisponde a una misurazione della domanda di memoria virtuale.

    Indica il numero di byte allocati dal processo e a quali il sistema operativo ha vincolato la pagina di memoria RAM o uno slot di pagina nel file di paging (o entrambi). Con l'aumento dei byte vincolati maggiore rispetto alla memoria RAM disponibile, aumenta il paging e anche la dimensione del file di paging in uso. A un certo punto, l'attività di paging inizia a influire in modo significativo sulle prestazioni.
  • Processo, Working Set, _Totale: questo contatore rappresenta una misurazione della memoria virtuale in uso "attivo".

    Questo contatore indica la quantità di memoria RAM necessaria affinché la memoria virtuale in uso per tutti i processi sia nella memoria RAM. Questo valore è sempre un multiplo di 4.096, ovvero la dimensione di pagina utilizzata in Windows. Quando la richiesta di memoria virtuale supera la disponibilità di memoria RAM, il sistema operativo regola la quantità di memoria virtuale del processo nel Working Set per ottimizzare l'utilizzo della memoria RAM disponibile e ridurre il paging.
  • File di paging, % file di paging in uso: questo contatore rappresenta una misurazione della quantità del file di paging effettivamente utilizzata.
    Utilizzare questo contatore per determinare se il file di paging dispone di una dimensione appropriata. Quando il contatore raggiunge il valore di 100 vuol dire che il file di paging è pieno e le operazione verranno interrotte. A seconda della volatilità del carico di lavoro, è probabile che l'utente desideri che il file di paging abbia una dimensione sufficiente affinché non ne utilizzi più del 50-70%. Se viene utilizzata la maggior parte del file di paging, disporre di più file di paging su differenti dischi fisici potrebbe comportare un aumento delle prestazioni.
  • Memoria, Pagine/sec: Questo contatore è uno di quelli meno compresi.

    Se questo contatore indica un valore elevato non sempre significa che il collo di bottiglia relativo alle prestazioni deriva da una carenza di memoria RAM. Il sistema operativo utilizza il sistema di paging per scopi diversi dalla sostituzione delle pagine, a causa di un impiego eccessivo della memoria.
  • Memoria, Output pagine/sec: Questo contatore indica il numero di pagine di memoria virtuale scritte ogni secondo nel file di paging al fine di liberare le pagine di memoria RAM per altri scopi.

    Questo è il migliore contatore per effettuare un monitoraggio quando si sospetta che il paging rappresenti il proprio collo di bottiglia relativo alle prestazioni. Anche se il numero dei byte vincolati è superiore rispetto alla memoria RAM installata, nel caso in cui il contatore Output pagine/sec indica quasi sempre un valore pari o inferiore a zero significa che non è presente un problema importante relativo alle prestazioni e derivante dalla quantità di RAM insufficiente.
  • Memoria, Byte nella cache,
    Memoria, byte del pool non di paging,
    Memoria, byte del pool di paging,
    Memoria, byte totali codice di sistema,
    Memoria, byte totali driver di sistema:
    tutti questi contatori rappresentano una misurazione di quanta parte dei 2 GB della parte condivisa dei 4 GB dello spazio di indirizzamento virtuali viene effettivamente utilizzata. Utilizzare questi contatori per determinare se il sistema sta per raggiungere uno dei limiti dell'architettura descritti in precedenza.
  • Memoria, MB disponibili: questo contatore consente di misurare la quantità di memoria RAM disponibile per soddisfare la domanda di memoria virtuale (sia nuove allocazioni che il ripristino di una pagina dal file di paging).

    Quando la memoria RAM è scarsamente disponibile (ad esempio, il numero dei byte vincolati è superiore rispetto alla memoria RAM installata), il sistema operativo tenta di mantenere una determinata porzione della RAM disponibile per un utilizzo immediato e copia nel file di paging le pagine di memoria virtuale che non sono in uso attivo. Di conseguenza, questo contatore non raggiunge il valore zero e non rappresenta un buon modo per indicare la scarsa disponibilità di memoria RAM del sistema.
Per ulteriori informazioni su questi argomenti, visitare i seguenti blog e siti Web Microsoft:

Proprietà

Identificativo articolo: 2160852 - Ultima modifica: venerdì 30 agosto 2013 - Revisione: 5.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows 7 Enterprise
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Ultimate
Chiavi: 
kbsurveynew kbinfo kbhowto kbexpertiseadvanced KB2160852
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com