La mémoire SQL Server augmente constamment, passant de 1 Go de RAM à 7 Go en une semaine

8

J'ai une base de données de ~ 45 Go qui augmente rapidement (~ 1 Go chaque semaine).

Il fait donc beaucoup d'inserts; l'application Web ne compte pas beaucoup d'utilisateurs, donc les lectures sont faibles en ce moment.

Mais je remarque que les utilisateurs du serveur SQL RAM passent de ~ 1 Go lorsque le serveur est démarré pour la première fois à utiliser ~ 7 Go de RAM après une semaine.

Y a-t-il une sorte de fuite de mémoire? Il y avait un article sur MSDN qui suggérait que le serveur SQL augmente la mémoire qu'il utilise pour la mise en cache et qui continuera toujours d'augmenter. Cependant, le serveur n'a que 7,5 Go ou RAM, donc je crains que cela ne manque de mémoire à moins que je ne redémarre SQL Server chaque semaine ... ce qui semble faux.

Est-ce un comportement typique? Existe-t-il un paramètre que je peux définir pour limiter l'utilisation de la mémoire?

rksprst
la source
3
Voir la réponse de Farseeker. Il a frappé le clou sur la tête. Il s'agit d'un comportement normal, prêt à l'emploi et bien qu'il existe un moyen de limiter l'utilisation de la mémoire de SQL; vous n'avez pas vraiment besoin de faire ça. Notre serveur SQL plafonne à 10,5 Go - 11 Go (sur 12 Go au total) de mémoire en quelques heures. Moi et mon DBA, sommes très heureux quand nous voyons SQL avec autant de mémoire. Cela signifie que nos applications auront accès à ces données beaucoup plus rapidement.
Cypher

Réponses:

14

Le serveur SQL est censé utiliser autant de RAM que possible. Le serveur SQL est également incroyablement intelligent. Nous avons des serveurs de base de données avec de la RAM allant de 2 Go à 96 Go et pas une seule fois, jamais, je n'ai dû intervenir et commencer à gérer la RAM manuellement, et la plupart d'entre eux sont à 99,5% d'utilisation.

Le simple fait est que SQL Server fonctionnant avec 1 Go de mémoire consommée sera beaucoup plus lent lors des lectures qu'un serveur SQL fonctionnant avec 96 Go de mémoire consommée.

À moins que vous ne partagiez les rôles de serveur SQL avec d'autres rôles gourmands en mémoire, laissez-le tranquille. Il n'utilisera jamais plus de mémoire disponible dans le système, et s'il atteint 99% d'utilisation, alors génial - vous avez créé un grand cache et les choses seront désormais plus rapides.

Mark Henderson
la source
Merci, je ne savais pas que c'était le comportement attendu et souhaité. Je ferai en sorte de le laisser tranquille alors.
rksprst
1
@rksprst - tout va bien, il faut un certain temps pour s'y habituer.
Mark Henderson
2

En règle générale, vous souhaiterez allouer 1 à 2 Go de RAM pour le système d'exploitation afin que le système d'exploitation dispose de RAM pour fonctionner. Le serveur SQL peut alors avoir le reste de la mémoire.

mrdenny
la source
Certaines sources MS recommandent de limiter votre mémoire, donc +1.
Sam