Riduzione delle prestazioni sui server più recenti


8

Abbiamo diversi server db in produzione, 4 dei quali con una configurazione hardware molto simile. Dell PowerEdge R620, l'unica differenza è che 2 nuovi (acquistati e configurati 3 mesi fa) hanno controller RAID v710, 256 GB di RAM e CPU 2 Xeon fisici E5-2680 2,80 GHz. I vecchi (acquistati e configurati circa 1 anno fa) hanno un controller RAID v700, 128 GB di RAM e funzionante con 2 Xeon fisici E5-2690 a 2,90 GHz. Il BIOS viene aggiornato, tutti i driver aggiornati alle ultime versioni, ecc. Tutti gli SQL Server 2008R2 Enterprise (SP1) in esecuzione vengono aggiornati all'ultima CU e allo standard Windows 2012R2. Entrambi in esecuzione su 200 GB SSD x5 RAID10. Esiste un solo database in esecuzione su ciascuno di essi, sincronizzato mediante un processo che chiama un pacchetto SSIS. Il nostro amministratore di sistema ha eseguito molte prove di stress e prestazioni per garantire che non ci siano errori di configurazione o guasti dell'hardware o della rete. Come previsto, i più recenti mostrano risultati di prestazioni migliori. Fin qui tutto bene.

Il problema che abbiamo può essere visto sulla cattura dello schermo da Kibana. Giallo e arancione sono i 2 server più recenti (6,7 sulle tabelle) e sotto tutti gli altri server. È perfettamente visibile che quei 2 nuovi server hanno un tempo di risposta più lento. E non solo, ma anche quei 2 server hanno un po 'meno di carico rispetto ai 2 più vecchi (linee blu chiare e scure - 4,5 sui tavoli).

inserisci qui la descrizione dell'immagine Avere un paio di script di monitoraggio che raccolgono informazioni sui contatori di perf. Ho scavato il più possibile con DMV e terzi strumenti di monitoraggio, ho molte informazioni a portata di mano. Ma ci dovrebbe essere (spesso) qualcosa che mi manca qui perché non riesco a trovare una risposta a questo tempo di risposta più lento.

I 2 server più recenti utilizzano meno RAM, ma immagino che ci si aspetti, rispetto agli altri vecchi poiché quelli hanno un carico inferiore.

| Server Name| Mem_MB |    Mem_GB    | Server_RAM_GB | SQL_max_mem_GB| SQL_min_mem_GB |
|------------|--------|--------------|---------------|---------------|----------------|
|      4     |  41108 | 40.145263671 |     128       |      120      |      16        |
|      5     |  61272 | 59.836425781 |     128       |      120      |      16        |
|      6     |  34117 | 33.317626953 |     256       |      250      |      16        |
|      7     |  33764 | 32.972656250 |     256       |      250      |      16        |

Più configurazione RAM per tutti i server è la seguente:

| Server Name | Total_Page_File_In_MB | Available_Page_File_MB | Kernel_Paged_Pool_MB | Kernel_Nonpaged_Pool_MB |
|-------------|-----------------------|------------------------|----------------------|-------------------------|
| 4           | 180160                | 130042                 | 249                  | 98                      |
| 5           | 148416                | 77246                  | 249                  | 110                     |
| 6           | 301010                | 260453                 | 132                  | 99                      |
| 7           | 301010                | 260454                 | 143                  | 108                     |

L'esecuzione della seguente query su tutti i server mostra parametri di configurazione identici:

SELECT * FROM master.sys.configurations

Potrei continuare a mostrare molte più informazioni ma non sono completamente sicuro di cosa potrebbe essere necessario. Qualche idea su cosa dovrei controllare?

Ho letto un white paper noto da MS Risoluzione dei problemi di prestazioni in SQL Server 2008 e da lì ho preso molte delle domande di DMV.

MODIFICA Su richiesta:

EXEC sp_configure 'max server memory (MB)'

| Server Name | name                   | minimum | maximum    | config_value | run_value |
|-------------|------------------------|---------|------------|--------------|-----------|
| 4           | max server memory (MB) | 16      | 2147483647 | 120000       | 120000    |
| 5           | max server memory (MB) | 16      | 2147483647 | 120000       | 120000    |
| 6           | max server memory (MB) | 16      | 2147483647 | 250000       | 250000    |
| 7           | max server memory (MB) | 16      | 2147483647 | 250000       | 250000    |

Per quanto maxdopci abbiamo giocato e i risultati sono:

 EXEC sp_configure 'max degree of parallelism'

| Server Name |            name           | minimum | maximum | config_value | run_value |
|:-----------:|:-------------------------:|:-------:|:-------:|:------------:|:---------:|
|      4      | max degree of parallelism |    0    |   1024  |       1      |     1     |
|      5      | max degree of parallelism |    0    |   1024  |       1      |     1     |
|      6      | max degree of parallelism |    0    |   1024  |       1      |     1     |
|      7      | max degree of parallelism |    0    |   1024  |       1      |     1     |

I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Paul White 9

Risposte:


1

Questa immagine dice tutto.

inserisci qui la descrizione dell'immagine

Grazie Kin per aver sottolineato la tua domanda e le relative risposte. Ho imparato molto nel processo. Esaminando la tua domanda dettagliata ho pensato di fare lo stesso, confrontando i piani di esecuzione della nostra query più pesante ... e voilà !! Il problema era un lavoro che doveva essere in esecuzione già da un paio di settimane con la pianificazione disabilitata. Ora devo controllare perché è stato disabilitato e quando è stato disabilitato esattamente. Ora tutto funziona senza intoppi. La linea blu è un server che non riceve richieste a causa di manutenzione, non è morto.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.