J'obtiens une erreur de System Center Operations Manager (SCOM).
Comment résoudre cette erreur?
La mémoire du serveur volé du moteur SQL DB 2012 est trop élevée.
J'exécute une requête et j'obtiens ces compteurs:
╔═══════════════════════════════╦═════════════╗
║ Stolen Server Memory (MB) ║ 7354.773437 ║
║ Lock Memory (MB) ║ 106.195312 ║
║ Free Memory (MB) ║ 64.632812 ║
║ Connection Memory (MB) ║ 24.203125 ║
║ Log Pool Memory (MB) ║ 14.085937 ║
║ Optimizer Memory (MB) ║ 2.351562 ║
║ Granted Workspace Memory (MB) ║ 1.296875 ║
║ Cursor memory usage ║ 0.000000 ║
║ Cursor memory usage ║ 0.000000 ║
║ Cursor memory usage ║ 0.000000 ║
╚═══════════════════════════════╩═════════════╝
Combien de fois voyez-vous de tels messages? S'il est une ou deux fois, il peut être ignoré.
'Mémoire volée' comme décrit dans cet ancien article de support et Comment utiliser le DBCC MEMORYSTATUS est:
La mémoire volée décrit les tampons qui sont utilisés pour le tri ou pour les opérations de hachage (mémoire de l'espace de travail de requête), ou pour les tampons qui sont utilisés comme magasin de mémoire générique pour les allocations pour stocker les structures de données internes telles que les verrous, le contexte de transaction et les informations de connexion . Le processus lazywriter n'est pas autorisé à vider les tampons volés du pool de tampons.
La mémoire provient généralement du pool de tampons. Si vous exécutez DBCC MEMORYSTATUS
et la sortie vous montre haut Pages volées , cela signifie que certains processus sont volés la mémoire du pool de tampons plus que ce qui est nécessaire et vous devez trouver ce processus.
Il est très probable qu'il y ait eu une opération en cours qui a effectué une énorme opération de tri et en même temps, SQL Server consommait beaucoup de mémoire, ce qui a conduit à ce message. À moins que vous ne rencontriez un problème de MOO, ce message sera davantage considéré comme un avertissement .