La memoria di SQL Server aumenta costantemente, da 1 GB di RAM utilizzata a 7 GB in una settimana


8

Ho un database di ~ 45 GB che aumenta rapidamente (~ 1 GB ogni settimana).

Quindi sta facendo molti inserti; l'app Web non ha molti utenti, quindi le letture al momento sono basse.

Ma sto notando che gli utenti del server RAM sql passano da ~ 1 GB quando il server inizia a utilizzare ~ 7 GB di RAM dopo una settimana.

C'è una sorta di perdita di memoria? C'era un articolo su MSDN che suggeriva che il server SQL aumentasse la memoria utilizzata per la memorizzazione nella cache e che continuerà sempre ad aumentare. Tuttavia, il server ha solo 7,5 GB o RAM, quindi sono preoccupato che rimanga a corto di memoria a meno che non riavvii SQL Server ogni settimana ... il che sembra sbagliato.

Questo comportamento è tipico? C'è qualche impostazione che posso impostare per impostare un limite sull'utilizzo della memoria?


3
Vedi la risposta di Farseeker. Ha colpito l'unghia sulla testa. Questo è un comportamento normale e immediato e mentre esiste un modo per limitare l'uso della memoria di SQL; non hai davvero bisogno di farlo. Il nostro server SQL ha una capacità di memoria di 10,5 GB - 11 GB (su un totale di 12 GB) in poche ore. Io e il mio DBA, siamo molto felici quando vediamo SQL con così tanta memoria. Significa che le nostre applicazioni avranno accesso a tali dati molto più velocemente.
Cypher,

Risposte:


14

Il server SQL è pensato per usare più RAM possibile. SQL Server è anche incredibilmente intelligente. Abbiamo server di database con RAM che vanno da 2Gb a 96Gb e non una volta, mai, ho dovuto intervenire e iniziare a gestire la RAM manualmente, e la maggior parte di essi ha un utilizzo del 99,5%.

Il fatto semplice è che SQL Server in esecuzione con 1 GB di memoria consumata sarà molto più lento in lettura rispetto a un server SQL in esecuzione con 96 GB di memoria consumata.

A meno che non si condividano i ruoli del server SQL con altri ruoli ad alta intensità di memoria, lasciarlo da solo. Non utilizzerà mai più memoria disponibile nel sistema e, se raggiunge un utilizzo del 99%, sarebbe fantastico: hai creato una cache di grandi dimensioni e le cose saranno più veloci da ora in poi.


Grazie, non avevo idea che fosse il comportamento previsto e desiderato. Mi assicurerò di lasciarlo solo allora.
rksprst,

1
@rksprst - tutto bene, ci vuole un po 'per abituarsi.
Mark Henderson,

2

In genere è necessario allocare 1-2 GB di RAM per il sistema operativo in modo che il sistema operativo disponga di RAM con cui lavorare. SQL Server può quindi disporre del resto della memoria.


Alcune fonti MS consigliano di limitare la memoria, quindi +1.
Sam,
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.