Appropriata di Windows O / S dimensione del file di paging per SQL Server

voti
16

Se uno qualsiasi conosce una buona regola per il formato file di paging appropriate per un server che esegue SQL Server Windows 2003?

È pubblicato 05/08/2008 alle 18:07
fonte dall'utente
In altre lingue...                            


8 risposte

voti
11

Con tutto il rispetto per Remo (che stimo enormemente), sono assolutamente d'accordo. Se il file di paging è grande abbastanza per sostenere un dump completo, esso deve svolgere un dump completo ogni volta. Se si dispone di una grande quantità di RAM, questo può causare un minuscolo puntino di diventare un importante interruzione.

Se non si desidera il server a dover scrivere 1 TB di RAM su disco se c'è un problema temporaneo di una volta. Se c'è un problema ricorrente, è possibile aumentare il file di paging di catturare un dump completo. Vorrei aspettare a fare questo fino a quando non sono stati isntructed dal PSS (o qualcun altro qualificato per analizzare un dump completo) si chiedere di catturare un dump completo. Una piccolissima percentuale di amministratori di database sa come analizzare un dump completo. Un mini-dump è autosufficiente tra per la risoluzione di gran parte dei problemi che compaiono in ogni caso.

Inoltre, se il server è configurato per consentire un 1 TB dump completo e un problema ricorrente si verifica, la quantità di spazio libero su disco mi consiglia avere a portata di mano? Si potrebbe riempire un intero SAN in un solo fine settimana.

Una pagina del file 1.5 * RAM era la norma nei giorni in cui sei stato fortunato ad avere uno SQL Server con 3 o 4 GB di RAM. Questo non è il caso più. Lascio il file di paging alla dimensione predefinita di Windows e le impostazioni su tutti i server di produzione (ad eccezione di un server SSAS che sta vivendo la pressione di memoria).

E solo per un chiarimento, ho lavorato con i server che vanno da 2 GB di RAM a 2 TB di RAM. Dopo più di 11 anni, ho avuto solo per accrescere la base file di paging di catturare un dump completo una sola volta.

Risposto il 05/10/2011 a 22:39
fonte dall'utente

voti
10

Indipendentemente dalle dimensioni della RAM, è ancora necessario un file di paging di almeno 1,5 volte la quantità di RAM fisica. Questo è vero anche se si dispone di una macchina RAM da 1 TB, avrete bisogno di 1,5 TB file di paging su disco (sembra folle, ma è vero).

Quando un processo chiede MEM_COMMIT memoria tramite VirtualAlloc / VirtualAllocEx, la dimensione richiesta deve essere prenotato nel file di paging. Questo era vero nel primo sistema Win NT, ed è ancora vero oggi vedere Gestione della memoria virtuale in Win32 :

Quando la memoria è impegnata, pagine fisiche della memoria vengono allocate e lo spazio è riservato in un file di paging .

A nudo alcuni casi strani estremi, SQL Server verrà sempre chiedere per le pagine MEM_COMMIT. E dato il fatto che SQL utilizza una gestione dinamica della memoria politica che si riserva in anticipo come pool di buffer più possibile (le riserve e si impegna in termini di VAS), SQL Server verrà richiesta ad avviare una enorme riserva di spazio nel file di paging. Se il file di paging non è propriamente errori di dimensioni 801/802 inizieranno a comparire nel file di ERRORLOG di SQL e le operazioni.

Questo fa sì che sempre una certa confusione, come gli amministratori assumono erroneamente che un gran RAM elimina la necessità di un file di paging. In realtà avviene il contrario, una grande RAM aumenta la necessità di file di paging, proprio a causa del funzionamento interno del gestore di memoria di Windows NT. Il file di paging è riservata, si spera, mai usato.

Risposto il 22/11/2009 a 23:11
fonte dall'utente

voti
3

Secondo Microsoft "come la quantità di RAM in un computer aumenta, la necessità di un file di paging diminuisce." L'articolo prosegue poi a descrivere come utilizzare registri di prestazioni per determinare la quantità del file di paging viene effettivamente utilizzato. Prova a impostare il file di paging di memoria di sistema 1.5X per cominciare, poi fare il monitoraggio consigliate ed effettuare le regolazioni da lì.

Come determinare la dimensione del file di paging per le versioni a 64 bit di Windows

Risposto il 03/08/2010 a 19:58
fonte dall'utente

voti
2

Siamo stati di recente avendo alcuni problemi di prestazioni con uno dei nostri SQL Server che non siamo stati in grado di completamente stretto verso il basso, ed effettivamente utilizzato uno dei nostri biglietti di supporto Microsoft per averli aiutare a risolvere. La dimensione ottimale del file di paging per l'utilizzo con SQL Server si avvicinò, e la raccomandazione di Microsoft è che si tratti di 1 1/2 volte la quantità di RAM .

Risposto il 10/09/2009 a 06:05
fonte dall'utente

voti
2

Il più grande è meglio fino alla dimensione del working set dell'applicazione in cui si inizierà a entrare in rendimenti decrescenti. Si può cercare di trovare questo aumentando o diminuendo le dimensioni fino a vedere un cambiamento significativo nei tassi di successo della cache lentamente. Tuttavia, se la cache hit rate è superiore al 90% o giù di lì siete probabilmente OK. In generale si dovrebbe tenere un occhio su questo su un sistema di produzione per assicurarsi che non abbia superato la sua allocazione di RAM.

Risposto il 23/12/2008 a 15:45
fonte dall'utente

voti
1

Dopo molte ricerche i nostri server SQL dedicati che eseguono Enterprise x64 su Windows 2003 Enterprise x64 non hanno alcun file di paging.

Semplicemente, il file di paging è una cache per i file che viene gestito dal sistema operativo, e SQL ha il proprio sistema di gestione della memoria interna.

L'articolo fa riferimento MS non si qualifica che il consiglio è per il sistema operativo in esecuzione out-of-the-box servizi come la condivisione di file.

Avere un file di paging grava semplicemente il disco I / O perché Windows sta cercando di aiutare, quando solo il sistema operativo di SQL può fare il lavoro.

Risposto il 24/05/2011 a 13:47
fonte dall'utente

voti
1

Se siete alla ricerca di elevate prestazioni, si sta andando a voler evitare di paging completamente, quindi la dimensione del file di paging diventa meno significativo. Investire in quanta più RAM possibile per il server DB.

Risposto il 11/08/2008 a 13:22
fonte dall'utente

voti
0

In questo caso, il normale raccomandazione di 1,5 volte la RAM fisica totale non è il migliore. Questa raccomandazione molto generale è fornito sotto l'ipotesi che tutta la memoria è utilizzato da processi "normali", che in generale possono avere le loro pagine almeno utilizzate spostati disco senza generare problemi di prestazioni massicci per il processo di applicazione della memoria appartiene.

Per i server che eseguono SQL Server (in genere con grandi quantità di RAM), la maggior parte della RAM fisica è impegnata nel processo di SQL Server e dovrebbe essere (se configurato correttamente) bloccato in memoria fisica, impedendo che venga eseguito il paging per il file di paging . SQL Server gestisce la propria memoria con molta attenzione con le prestazioni in mente, utilizzando una grande parte della RAM allocata al suo processo come una cache di dati per ridurre disco I / O. Non ha senso per pagina in quelle pagine cache di dati per il file di paging, come unico scopo di avere i dati in RAM, in primo luogo è quello di ridurre disco I / O. (Si noti che il sistema operativo Windows utilizza anche la RAM disponibile in modo simile come cache del disco per velocizzare il funzionamento del sistema.) Dal momento che SQL Server gestisce già un proprio spazio di memoria, questo spazio di memoria non deve essere considerato "paginabile", non compresi in un calcolo per file di paging dimensione.

Per quanto riguarda MEM_COMMIT menzionato da Remus, la terminologia è confusa, perché nel gergo memoria virtuale, "riservato" non si riferisce all'allocazione effettivo, ma di impedire l'utilizzo di uno spazio di indirizzi (spazio non fisico) da un altro processo. Memoria disponibile per essere "impegnato" è sostanzialmente uguale alla somma di RAM e file di paging dimensione fisica, e facendo un MEM_COMMIT solo decrementa la quantità disponibile nel pool impegnato. Essa non allocare una pagina corrispondente nel file di paging in quel momento. Quando una pagina di memoria impegnata viene effettivamente scritto, cioè quando il sistema di memoria virtuale allocare una pagina di memoria fisica ed eventualmente urtare un'altra pagina di memoria da RAM fisica del paging. Vedi di MSDN funzione VirtualAlloc di riferimento.

Il sistema operativo Windows tiene traccia delle pressioni della memoria tra processi applicativi e proprio meccanismo di cache del disco e decide quando dovrebbe urtare pagine non-locked memoria dal fisico al file di paging. La mia comprensione è che avere un file di paging che è troppo grande rispetto allo spazio effettiva non-locked memoria può tradursi in Windows overzealously paging la memoria applicazione per il file di paging, con conseguente quelle applicazioni che soffrono le conseguenze di miss pagina (prestazioni lenta).

Fino a quando il server non è in esecuzione altri processi di memoria-affamati, una dimensione di file di paging di 4 GB dovrebbero essere sufficienti. Se è stata impostata SQL Server per consentire le pagine di blocco in memoria, si dovrebbe anche considerare la creazione impostazione di memoria massima di SQL Server in modo che lascia un po 'di RAM fisica disponibile per il sistema operativo per sé e per altri processi.

802 errori in SQL Server indicano che il sistema non può commettere più pagine per la cache dei dati. L'aumento delle dimensioni del file di paging contribuirà solo in questa situazione, in quanto Windows è in grado di pagina in memoria dai processi non SQL Server. Permettere memoria di SQL Server di crescere nel file di paging in questa situazione potrebbe sbarazzarsi dei messaggi di errore, ma è controproducente, a causa del punto precedente circa il motivo per la cache dei dati, in primo luogo.

Risposto il 04/04/2014 a 00:51
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more