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?
la source
Réponses:
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.
la source
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.
la source