Attivazione della memoria AWE per SQL Server
AWE (Address Windowing Extensions) consente ai sistemi operativi a 32 bit di accedere a grandi quantità di memoria. AWE è esposto dal sistema operativo e viene implementato con lievi differenze in Microsoft e . Viene attivato tramite l'opzione Opzione awe enabled.
Utilizzo della memoria mappata AWE con Windows 2000 Server
Le istanze di Microsoft SQL Server 2005 eseguite in allocano la memoria durante l'avvio di SQL Server in base alla sequenza di eventi seguente:
- Se la memoria fisica disponibile è inferiore allo spazio degli indirizzi virtuali della modalità utente, l'attivazione di AWE non è possibile. In questo caso SQL Server non viene eseguito in modalità AWE, indipendentemente dall'impostazione dell'opzione awe enabled.
- Se la memoria fisica disponibile è superiore allo spazio degli indirizzi virtuali della modalità utente, è possibile attivare AWE.
- Se la memoria fisica disponibile è superiore al valore dell'opzione max server memory, l'istanza di SQL Server blocca la quantità di memoria specificata in max server memory.
- Se la memoria fisica disponibile è inferiore al valore dell'opzione max server memory o se l'opzione max server memory non è stata impostata, l'istanza di SQL Server blocca tutta la memoria disponibile tranne 256 MB.
- Dopo l'allocazione, la memoria mappata AWE non può essere rilasciata fino all'arresto di SQL Server.
Configurazione delle opzioni di memoria
È consigliabile impostare un valore per max server memory ogni volta che si attiva AWE. Quando l'opzione awe enabled è impostata su 1 e la memoria fisica disponibile è maggiore dello spazio di processo della modalità utente, all'avvio del server le istanze di SQL Server 2005 eseguite in bloccano quasi tutta la memoria disponibile (o il valore di max server memory se l'opzione è stata impostata). Se l'opzione max server memory non è impostata, per le altre applicazioni o istanze di SQL Server sono disponibili meno di 128 MB di memoria fisica.
Non è possibile eseguire lo swapping del pool di memoria mappata AWE nei file di paging del sistema. Se è necessaria memoria fisica aggiuntiva, Windows dovrà eseguire lo swapping su altre applicazioni, con possibili conseguenze negative sulle prestazioni di queste ultime.
Per evitare effetti negativi sulle prestazioni di altre applicazioni, configurare max server memory in modo da lasciare libera una determinata quantità di memoria per le possibili esigenze delle altre applicazioni e del sistema operativo. Per determinare la quantità di memoria allocabile per le istanze di SQL Server è sufficiente identificare la quantità di memoria rimanente dopo l'avvio di tutte le altre applicazioni che verranno utilizzate nel computer.
[!NOTA] In , l'opzione min server memory viene ignorata dalla funzionalità AWE di SQL Server.
Utilizzare il contatore di Performance Monitor di SQL Server Memoria totale server (KB) per determinare la quantità di memoria allocata dall'istanza di SQL Server eseguita in modalità AWE, oppure selezionare l'utilizzo di memoria da sysperfinfo.
Per ulteriori informazioni, vedere Monitoraggio dell'utilizzo della memoria.
Esecuzione di istanze multiple di SQL Server con AWE
Se nel server viene eseguito , è opportuno configurare l'impostazione max server memory per ogni istanza. Poiché SQL Server 2005 eseguito nei sistemi operativi non supporta l'allocazione dinamica della memoria mappata AWE, è consigliabile impostare l'opzione max server memory per ogni istanza.
La somma dei valori max server memory per tutte le istanze deve essere inferiore rispetto alla quantità di memoria fisica presente nel computer. Se la somma supera la memoria fisica totale, alcune delle istanze non vengono avviate o hanno accesso a una quantità di memoria inferiore a quanto specificato dall'impostazione max server memory. Si supponga, ad esempio, che in un computer con 16 GB di memoria fisica siano installate tre istanze di SQL Server 2005. L'opzione max server memory, inoltre, è impostata su 8 GB per ogni istanza. Se si interrompono e riavviano tutte e tre le istanze, l'allocazione della memoria è la seguente:
- La prima istanza ha accesso a 8 GB di memoria fisica.
- La seconda istanza viene avviata, ma ha accesso a una quantità di memoria fisica leggermente inferiore a 8 GB (massimo 128 MB in meno).
- La terza istanza viene avviata in modalità di memoria dinamica e ha accesso a una quantità di memoria fisica inferiore o pari a 256 MB.
Per ulteriori informazioni, vedere Gestione della memoria per database di grandi dimensioni.
Utilizzo della memoria mappata AWE con Windows Server 2003
SQL Server 2005 supporta l'allocazione dinamica della memoria AWE con . Durante l'avvio, SQL Server riserva solo una piccola parte della memoria mappata AWE. Man mano che si rende necessaria memoria mappata AWE aggiuntiva, il sistema operativo la alloca in modo dinamico a SQL Server. Analogamente, se sono necessarie meno risorse, SQL Server può restituire memoria mappata AWE al sistema operativo, per l'utilizzo da parte di altri processi o applicazioni. Per ulteriori informazioni sull'opzione di configurazione awe enabled, vedere Opzione awe enabled.
Con l'introduzione della famiglia , la quantità di memoria fisica supportata è aumentata. La memoria fisica alla quale AWE ha accesso dipende dal sistema operativo in uso. Nell'elenco seguente viene specificata la memoria fisica massima accessibile da ogni sistema operativo al momento della compilazione del presente documento.
- Standard Edition supporta fino a 4 GB di memoria fisica.
- Enterprise Edition supporta fino a 32 GB di memoria fisica.
- Datacenter Edition supporta fino a 64 GB di memoria fisica.
Configurazione delle opzioni di memoria
SQL Server 2005 alloca dinamicamente memoria mappata AWE se è in esecuzione con un'edizione del sistema operativo . In altri termini, il pool di buffer è in grado di gestire dinamicamente la memoria mappata AWE, nell'ambito dei vincoli delle opzioni min server memory e max server memory, per bilanciare l'utilizzo di memoria di SQL Server con i requisiti generali del sistema.
Quando l'opzione AWE è attivata, SQL Server 2005 tenta sempre di utilizzare la memoria mappata AWE. Ciò è valido per tutte le configurazioni di memoria, compresi i computer configurati per rendere disponibile alle applicazioni meno di 3 GB di spazio degli indirizzi della modalità utente.
- Si consiglia di impostare AWE come modalità di memoria predefinita per SQL Server 2005 con . La funzionalità di aggiunta di memoria a caldo richiede l'attivazione di AWE durante l'avvio di SQL Server. Per informazioni, vedere Aggiunta di memoria a caldo.
[!NOTA] AWE non è necessario e non può essere configurato con sistemi operativi a 64 bit.
- Poiché la memoria mappata AWE è supportata sotto i 3 GB, è possibile definire i valori min server memory e max server memory entro l'intervallo della memoria fisica, oppure utilizzare i valori predefiniti di ambedue le opzioni.
- È consigliabile impostare max server memory per SQL Server in modo da garantire una determinata quantità di memoria per le altre applicazioni presenti nel computer. Sebbene SQL Server sia in grado di rilasciare dinamicamente la memoria mappata AWE, non è possibile eseguire lo swapping nel file di paging della quantità di memoria mappata AWE attualmente allocata.
Per rendere AWE disponibile per un'istanza di SQL Server 2005, utilizzare sp_configure per impostare l'opzione awe enabled su 1 e quindi riavviare SQL Server.
Per ulteriori informazioni su min server memory e max server memory, vedere Opzioni per la memoria server.
Prima di attivare AWE, è necessario configurare il criterio Lock Pages in Memory. Per ulteriori informazioni, vedere Procedura: Attivazione dell'opzione Blocco di pagine in memoria (Windows).
Esempio
Nel seguente esempio viene illustrato come attivare AWE e configurare un limite di 1
GB per min server memory e 6
GB per max server memory.
Innanzitutto, configurare AWE:
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
Dopo il riavvio di SQL Server, nel log degli errori di SQL Server viene scritto un messaggio relativo all'attivazione delle estensioni AWE.
In seguito, configurare la memoria:
sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
In questo esempio, le impostazioni della memoria consentono al pool di buffer di eseguire la gestione dinamica della memoria mappata AWE fra 1 GB e 6 GB. Se altre applicazioni richiedono memoria aggiuntiva, SQL Server può rilasciare la memoria mappata AWE allocata non necessaria. In questo esempio è possibile rilasciare la memoria mappata AWE solo fino al limite di 1 GB.
La gestione dinamica della memoria AWE consente inoltre a SQL Server di aumentare la memoria in caso di aggiunta di memoria a caldo nei computer che supportano tale operazione. L'aggiunta di memoria a caldo, disponibile in , Enterprise Edition e Datacenter Edition, consente di aggiungere memoria mentre il computer è acceso. Si supponga, ad esempio, che SQL Server 2005 in esecuzione in , Enterprise Edition, venga avviato in un computer dotato di 16 GB di memoria fisica. Il sistema operativo è configurato in modo da limitare le applicazioni a 2 GB di spazio degli indirizzi della memoria virtuale. AWE è stata attivata in SQL Server. Successivamente, l'amministratore di sistema aggiunge 16 GB di memoria mentre il computer è acceso. SQL Server 2005 riconosce immediatamente la memoria aggiuntiva e, se necessario, può sfruttarla.
Per ulteriori informazioni sull'utilizzo di AWE, vedere la documentazione di .
Esecuzione di istanze multiple di SQL Server con AWE
Se sono in esecuzione più istanze di SQL Server 2005 nello stesso computer e ogni istanza utilizza la memoria AWE, è necessario assicurarsi che le prestazioni delle istanze corrispondono alle aspettative.
Se nel server viene eseguito , è opportuno configurare l'impostazione min server memory per ogni istanza. Poiché SQL Server 2005 eseguito in supporta la gestione dinamica della memoria mappata AWE, si consiglia di impostare l'opzione min server memory per ogni istanza. Poiché non è possibile eseguire lo swapping nel file di paging della memoria mappata AWE, la somma dei valori min server memory di tutte le istanze deve essere inferiore alla memoria fisica totale del computer.
L'opzione min server memory non impone a SQL Server l'acquisizione di una quantità minima di memoria all'avvio. La memoria viene allocata su richiesta, in base al carico di lavoro del database. Tuttavia, quando viene raggiunto il valore soglia impostato per min server memory, SQL Server non rilascia la memoria qualora l'operazione lasciasse al programma una quantità di memoria inferiore a tale valore. Pertanto, per assicurare che ogni istanza disponga di una quantità di memoria allocata pari almeno al valore min server memory, si consiglia di eseguire il caricamento di un server di database subito dopo l'avvio. Durante la normale attività del server la memoria disponibile per ogni istanza varia, ma non è mai inferiore al valore min server memory disponibile per ogni istanza.
È possibile impostare max server memory oppure utilizzare il valore predefinito dell'opzione. Se si utilizza il valore predefinito dell'opzione max server memory, le istanze di SQL Server entrano in competizione per l'acquisizione di memoria.
Utilizzo del clustering di failover con AWE
Se si utilizza il clustering di failover di SQL Server 2005 con la memoria AWE, verificare che la somma dei valori max server memory di tutte le istanze sia inferiore alla quantità minima di memoria fisica disponibile in uno qualsiasi dei server del cluster di failover. Se il nodo di failover dispone di una quantità di memoria fisica inferiore a quella del nodo originale, è possibile che le istanze di SQL Server 2005 non vengano avviate o vengano avviate con quantità di memoria inferiori a quelle di cui disponevano nel nodo originale.
Vedere anche
Attività
Procedura: Configurazione dell'opzione awe enabled (SQL Server Management Studio)
Concetti
Utilizzo di AWE
Gestione della memoria per database di grandi dimensioni
Architettura della memoria