SQLServer: Le taux de succès du cache tampon est une bonne indication dun goulot détranglement possible de la mémoire?

Je recherche une indication (le cas échéant) qui ne tiendrait pas compte de loption de goulot détranglement de la mémoire, ou laccepterait, ou me ferait enquêter plus avant.

par exemple:

espérance de vie de la page:

SELECT [object_name], [counter_name], [cntr_value] FROM sys.dm_os_performance_counters WHERE [object_name] LIKE "%Manager%" AND [counter_name] = "Page life expectancy" 

entrez la description de limage ici

À cette occasion, sur mon environnement actuel, jai un serveur qui a 8 Go de RAM, je demanderais à la direction pour plus de mémoire. Je pense que cest un goulot détranglement de la mémoire.

ce qui utilise la RAM serait une autre enquête.

Le-mail ci-dessous est-il valide pour identifier déventuels goulots détranglement de la mémoire?

nous devons examiner SQLServer: Taux de réussite du cache de la mémoire tampon

Si ce rapport est inférieur à 95%, le serveur est sous pression de mémoire

Jespère que cela vous aidera,

entrez la description de limage ici

Commentaires

  • Veuillez ne pas baser votre suggestion concernant la mémoire sur Buffer Cache hit ratio . Veuillez lire Grand débat sur SQL Server sur BCHR car je ne compte jamais sur ce compteur. Vous pouvez compter sur PLE mais vous devez voir PLE pour tous les nœuds NUMA (si vous en avez)
  • La valeur PLE semble être très inférieure, mais les autres compteurs conviennent. Vous avez étiqueté la question avec deux versions, je peux vous donner une liste de compteurs pour surveiller lutilisation de la mémoire, mais comme il y a 2 versions impliquées, leur différence est un peu. Quelle version recherchez-vous exactement

Réponse

Nous devons examiner SQLServer: Taux de réussite du cache de la mémoire tampon.Si ce taux est inférieur à 95%, le serveur est sous pression de mémoire

Arrêtez de regarder Buffer Taux de réussite du cache pour déterminer la pression de la mémoire. Cela est dû au fait quavec le mécanisme de lecture anticipée dans SQL Server, il y a déjà suffisamment de pages dans le pool de mémoire tampon pour satisfaire la requête, de sorte que BCHR ne donne pas de chiffres précis sur la pression mémoire. Vous pourriez même voir que le BCHR ne tomberait même pas lorsquil y a une pression de mémoire. Tout cela a été expliqué dans Grand débat SQL Server sur BCHR

La sortie PLE que vous avez publiée semble vraiment faible, mais nous ne pouvons pas utiliser un seul compteur pour jauge la pression de la mémoire. PLE est plus une indication de lactivité dE / S sur le serveur. Il est possible quen raison dune forte activité dE / S, PLE ait chuté. Si vous notez que la mémoire du serveur cible et totale reste la même. Ce qui est bon signe.

Pour Edition upto 2008 R2. Vous pouvez utiliser les compteurs ci-dessous

  1. SQLServer: Buffer Manager – CheckpointPages / sec:

  2. SQLServer: Buffer Manager – Memory Grants En attente:

  3. SQLServer: Buffer Manager – Mémoire du serveur cible:

  4. SQLServer: Buffer Manager – Mémoire totale du serveur

  5. SQLServer: Buffer Manager – Pages gratuites

  6. SQLServer: Buffer Manager – Free List Stall / sec

  7. SQLServer: Buffer Manager – Espérance de vie des pages

Pour SQL Server 2012 onwards quelques tampons Les compteurs de pool sont obsolètes et nous devons donc utiliser les compteurs de Memory Manager

  1. SQL Server: Memory Manager – Target Server Memory (KB)

  2. SQL Server: Memory Manager – Mémoire totale du serveur (Ko)

  3. SQL Server: Memory Manager – Mémoire libre (Ko)

  4. SQL Server: Memory Manager – Mémoire cache de la base de données (Ko)

  5. SQLServer: Buffer Manager – Pages libres

  6. SQLServer: Buffer Manager – Blocage de la liste libre / s

  7. SQLServer: Buffer Manager – Espérance de vie de la page

Remarque si vous avez une activité disque importante, noubliez pas de vous référer également aux compteurs liés au disque. Créez un ensemble de collecteurs de données et laissez-le fonctionner pendant 4 à 5 heures lorsque la charge sur le système est au maximum, puis ajoutez linstantané du collecteur de données à votre question. Ensuite, nous pouvons déterminer si SQL Server a besoin de plus de mémoire ou non.

Personnellement, la 8G est un peu moins de RAM compte tenu de la charge de travail et des exigences du système dexploitation de nos jours. Au fond de votre tête, vous devriez toujours penser à augmenter la RAM.

Réponse

nous devons examiner SQLServer: taux de réussite du cache de la mémoire tampon

Si ce rapport est inférieur à 95%, le serveur est sous pression de mémoire

Jespère que cela aide,

Ce nest pas ce qui vous aidera à décider seul du goulot détranglement de la mémoire. Ce que je préférerais plutôt, cest de collecter les données pour les compteurs ci-dessous au moins pendant une journée pendant les heures de forte charge / heures ouvrables.

Memory – Available MBytes SQLServer: Buffer Manager – Page Life Expectancy SQLServer: Memory Manager – Memory Grants Pending SQLServer: Memory Manager – Target Server Memory SQLServer: Memory Manager – Total Server Memory SQLServer: SQL Statistics – Batch Requests/sec SQLServer: SQL Statistics – Compilations/sec 

Le mieux serait de baser le serveur SQL comme suggéré Retour aux principes de base: capture de lignes de base sur Production SQL Serveurs qui collecteront également les compteurs de performances requis ainsi que les statistiques dattente pour tout problème.

De plus, 8 Go de RAM peuvent ne pas être aussi adaptés que lenvironnement actuel, mais encore une fois, cela dépend de ce qui est la charge sur le système ainsi que la taille des bases de données hébergées sur linstance \ instances.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *