C'est concernant la mémoire SQL Server. Lorsque le serveur est à court de mémoire, nous vous recommandons d'ajouter de la mémoire supplémentaire au matériel pour surmonter les problèmes d'utilisation de la CPU.
Mais avant de passer à la mise à niveau de la mémoire, dans le cadre du dépannage, comment vérifier/calculer la mémoire SQL qui est actuellement consommée sur l'instance.
Par exemple:
Nom du serveur: XXXXXXXXXXXXXX
Mémoire physique installée (RAM): 64,0 gb
SQL Server Memory actuellement attribué: 58982 MB -> 58,982 gb
Dans ce cas, nous n'avons qu'une seule instance (MSSQLServer) sur le serveur et 80% de mémoire a été attribuée à l'instance conformément à la norme. Et 20% sont attribués à Application & OS.
Lorsque nous vérifions sur le moniteur de ressources, il affichera 80% rempli que nous avons défini la mémoire SQL Server à cela.
Mais cela ne signifie pas que 80% de SQL est complètement utilisé, car SQL gardera un peu d'espace dans le tampon au backend. Lorsque j'ai surfé, j'ai eu la formule ci-dessous pour calculer la mémoire SQL consommée sur l'instance, mais ces paramètres ont été supprimés sur l'outil de moniteur de performances à l'arrière.
Existe-t-il un moyen de vérifier, actuellement combien le SQL est utilisé de 80% (ou) sur les mesures que nous pouvons procéder à la mise à niveau de la mémoire.
Formule de calcul de la mémoire SQL: (ci-dessous des paramètres a été supprimé du moniteur de performances)
*Database Usage(GB) = (Totalpages-Freepages-Stolenpages)8/1024=MB/1024=GB
Utilisez la procédure stockée MemoryManagerInfo
, qui peut être trouvée ici:
https://github.com/aleksey-vitsko/database-administrator-tools
Il fournit une belle ventilation de la manière dont SQL Server actuellement utilise la mémoire:
[.____] Voir exemple sur cette image ci-dessous - c'est ce que mon serveur prend actuellement:
À peu près, Total Server Memory
= Database Cache Memory
+ Free Memory
+ Stolen Server Memory
(La mémoire du serveur volée comprend le cache de plan, les serrures, etc.)