Sto cercando unindicazione (se presente) che potrebbe ignorare lopzione collo di bottiglia della memoria, o accettarla, o farmi indagare ulteriormente.
ad esempio:
aspettativa di vita della pagina:
SELECT [object_name], [counter_name], [cntr_value] FROM sys.dm_os_performance_counters WHERE [object_name] LIKE "%Manager%" AND [counter_name] = "Page life expectancy"
IN questa occasione, nel mio ambiente attuale, ho un server con 8 GB di RAM, chiederei alla direzione per più memoria. Credo che questo sia un collo di bottiglia della memoria.
ciò che sta usando la RAM sarebbe unaltra indagine.
questa email qui sotto è valida per identificare possibili colli di bottiglia della memoria?
dobbiamo esaminare SQLServer: Buffer Cache Hit ratio
Se questo rapporto è inferiore al 95%, il server è sotto pressione di memoria
Spero che questo sia daiuto,
Commenti
Risposta
Dobbiamo esaminare il rapporto SQL Server: Buffer Cache Hit. Se questo rapporto è inferiore al 95% rispetto al server sotto pressione di memoria
Smetti di guardare Buffer Rapporto di riscontri nella cache per determinare la pressione della memoria. Questo perché con il meccanismo di lettura in anticipo in SQL Server sono già presenti più che sufficienti pagine nel pool di buffer per soddisfare la query, quindi BCHR non fornisce dati precisi sulla pressione della memoria. Potresti anche vedere che BCHR non scenderà nemmeno quando cè pressione della memoria. Tutto questo è stato spiegato in Grande dibattito su SQL Server su BCHR
Loutput di PLE che hai pubblicato sembra davvero basso ma non possiamo usare solo un contatore per misurare la pressione della memoria. PLE è più unindicazione dellattività di I / O sul server. Potrebbe essere possibile che a causa della forte attività di I / O PLE sia precipitato. Se si nota che la memoria del server Target e Total rimane la stessa. Il che è un buon segno.
Per Edition upto 2008 R2
. Puoi utilizzare i seguenti contatori
-
SQLServer: Buffer Manager – CheckpointPages / sec:
-
SQLServer: Buffer Manager – Memory Grants In sospeso:
-
SQLServer: Buffer Manager – Memoria server di destinazione:
-
SQLServer: Buffer Manager – Memoria server totale
-
SQLServer: Buffer Manager – Pagine libere
-
SQLServer: Buffer Manager – Stallo elenco gratuito / sec
-
SQLServer: Buffer Manager – Aspettativa di vita della pagina
Per SQL Server 2012 onwards
pochi di Buffer I contatori del pool sono deprecati e quindi dobbiamo utilizzare i contatori di Memory Manager
-
SQL Server: Memory Manager– Target Server Memory (KB)
-
SQL Server: Memory Manager – Memoria totale del server (KB)
-
SQL Server: Memory Manager – Memoria libera (KB)
-
SQL Server: Memory Manager – Database Cache Memory (KB)
-
SQLServer: Buffer Manager – Pagine libere
-
SQLServer: Buffer Manager – Stallo elenco gratuito / sec
-
SQLServer: Buffer Manager – Aspettativa di vita della pagina
Nota se hai una intensa attività del disco, non dimenticare di fare riferimento anche ai contatori relativi al disco. Crea un set di raccolta dati e consenti lesecuzione per 4-5 ore quando il carico sul sistema è al massimo, quindi aggiungi listantanea del raccoglitore di dati nella tua domanda. Quindi possiamo determinare se SQL Server ha bisogno di più memoria o meno.
Personalmente 8G è un po meno RAM considerando il carico di lavoro e i requisiti del sistema operativo in questi giorni. In fondo alla tua testa dovresti sempre pensare ad aumentare la RAM.
Rispondi
dobbiamo esaminare SQLServer: rapporto di accesso alla cache del buffer
Se tale rapporto è inferiore al 95% rispetto al server sotto pressione di memoria
Spero che questo aiuti,
Non è questo che ti aiuterà a decidere da solo il collo di bottiglia della memoria. Piuttosto quello che preferirei è raccogliere i dati per i contatori inferiori almeno per un giorno durante le ore di lavoro / carico pesante.
Memory – Available MBytes SQLServer: Buffer Manager – Page Life Expectancy SQLServer: Memory Manager – Memory Grants Pending SQLServer: Memory Manager – Target Server Memory SQLServer: Memory Manager – Total Server Memory SQLServer: SQL Statistics – Batch Requests/sec SQLServer: SQL Statistics – Compilations/sec
La soluzione migliore sarebbe Baseline the SQL server come suggerito Torna ai concetti di base: acquisizione di baseline su SQL di produzione Server che raccoglieranno anche i contatori delle prestazioni richieste insieme alle statistiche di attesa per qualsiasi problema ..
Inoltre, 8 GB di RAM potrebbero non essere adatti come da env di oggi, ma ancora una volta dipende da cosa è il carico sul sistema insieme alla dimensione dei database ospitati nellistanza \ istanze.
Buffer Cache hit ratio
. Si prega di leggere Grande dibattito su SQL Server su BCHR perché non mi affido mai a questo contatore. Puoi fare affidamento su PLE ma devi vedere PLE per tutti i nodi NUMA (se lo hai)