Su un server di database dedicato, quanta memoria riservare al sistema operativo?


38

Supponendo che tu abbia un server dedicato esplicitamente per le funzioni del database - quanta memoria dovresti riservare al sistema operativo?

Mi rendo conto che probabilmente questo varierà leggermente a seconda del sistema operativo specifico, del software di database specifico e così via. Ma, poiché la memoria è così importante per le prestazioni del database, voglio che il database abbia il massimo livello ragionevole di memoria, senza morire di fame il sistema operativo host.

Così

  • qual è una buona regola empirica per cominciare?
  • quali contatori o indicatori di prestazione dovremmo guardare per determinare se siamo andati troppo lontano e il sistema operativo host è in qualche modo affamato dal database?

avete mai modificato queste impostazioni? Cosa ti ha detto la tua profilazione?
jcolebrand

@jcole niente da aggiungere in questo momento; di solito riserviamo 4-6 GB per il sistema operativo, che è un po 'più conservatore di quanto vorrei
Jeff Atwood,

Risposte:


30

Supponendo che Windows e SQL Server ...

Ci sono due scuole di pensiero.

  1. Lasciare 2-4 concerti per Windows (a seconda di ciò che è installato oltre a SQL Server).
  2. Lascia libero il 10% della memoria disponibile. Man mano che supererai i 64 concerti, questa sarà una quantità folle di memoria da lasciare per il sistema operativo, che probabilmente non sarà necessaria.

Personalmente sono nel primo gruppo. Windows di solito richiede solo 2-4 concerti, a volte fino a 6.


2
Concordo su 2 GB di RAM per il sistema operativo.
jcolebrand

Sono anche d'accordo. In genere lascio 2 GB per il sistema operativo e garantisco anche lo spazio per i file di pagina contigui. Ovviamente, il tuo chilometraggio può variare e la soluzione migliore è configurare l'impostazione, monitorare le prestazioni e apportare modifiche prudenti, se necessario.
Matt M

2
@matt giusto, ma cosa è meglio monitorare specificamente, quando guardo "sto morendo di fame il sistema operativo dalla memoria?"
Jeff Atwood,

1
@Jeff Il mio commento non è stato preciso come avrebbe dovuto essere. Per quanto riguarda la memoria, in genere guardo i seguenti contatori delle prestazioni: Memoria: Pagine / sec e Memoria: Byte disponibili. Consulta queste pagine per ulteriori informazioni: sql-server-performance.com/articles/audit/… e technet.microsoft.com/en-us/library/cc966540.aspx (in particolare la sezione Memory Bottlenecks)
Matt M

6
La risposta di @Jeff Denny è corretta e, per i contatori Perfmon, guarda Memoria: byte disponibili. Se scende sotto, diciamo, 512 MB, rischi di morire di fame nel sistema operativo. Tuttavia, tieni
Brent Ozar

16

Supponendo che Linux, se disattivi lo swap e il kernel continua ad uccidere il processo del tuo DB perché ha memoria insufficiente, è un buon indicatore che stai morendo di fame per la memoria del sistema operativo. Indietreggia fino a quando smette di succedere. Un paio di centinaia di mega sono di solito abbondanti.


+1 per il profilo profilo profilo ~ comunque essendo Jeff askin presumo che sia sicuramente SQL Server e Windows;)
jcolebrand

1
@jcolebrand tuttavia, sapendo anche che è @jeff riconoscerai che non l'ha detto, il che significa che lo ha lasciato intenzionalmente aperto per tutte le piattaforme e tutti i database.
xenoterracide,

2
E, pur sapendo che è @jeff ... perché non dovrebbe essere in grado di imparare a smettere di preoccuparsi e amare Linux? ;-)
Jürgen A. Erhard,

8

Puoi sfruttare l'esperienza di Amazon nella gestione di migliaia di server di database dei clienti qui: su Amazon Relational Database Service, hanno impostato il pool di buffer innodb di MySQL su 3/4 della memoria del sistema, indipendentemente dalla quantità di memoria disponibile. Aggiungi fino a un paio di megabyte per connessione per vari buffer di query e probabilmente lasceranno il 10-20% della memoria nel sistema operativo.


5

Dovresti leggere la memoria di Brent Ozar . Ha alcune risposte abbastanza standard sul perché dovresti cercare memoria e perché più memoria equivale a prestazioni migliori. In generale, 4 GB o il 10% riservato al sistema operativo.

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.