SQL Server 100% utilisation CPU - une base de données montre une utilisation CPU élevée que d'autres

nous avons un serveur SQL avec environ 40 bases de données différentes (environ 1-5 Go chacune). Le serveur est un processeur 8 core 2.3 G avec 32 g de RAM. 27Gig est épinglé à SQL Server. La plupart du temps, L'utliziation CPU est toujours proche de 100% et la consommation de mémoire est d'environ 95%. Le problème ici est le CPU qui est constamment proche de 100% et essayer de comprendre la raison.

j'ai lancé une vérification initiale pour voir quelle base de données contribue à un CPU élevé en utilisant - script mais I ne pouvait pas justifier en détail ce qui consomme réellement CPU. La requête du haut (de tous les DBs) ne prend qu'environ 4 secondes à compléter. IO n'est pas non plus un goulot d'étranglement.

Mémoire être le coupable ici? J'ai vérifié la séparation de la mémoire et le CACHE de L'objet occupe environ 80% de la mémoire allouée (27G) au serveur SQL. J'espère que c'est normal à condition qu'il y ait beaucoup de SPs impliqués. En lançant profiler, je vois beaucoup de recompiles, mais ils sont surtout dus à "table temp changed", "compile différé"" etc et je ne suis pas clair si ces recompile sont une suite de plans de se faire jeter hors de cache en raison de la pression de la mémoire

appréciez toutes vos pensées.

8
demandé sur Community 2012-09-17 16:04:09

2 réponses

Vous pouvez voir quelques rapports dans SSMS:

clic droit sur le nom de l'instance / rapports / standard / TOP sessions

vous pouvez voir le haut des sessions de consommation CPU. Cela peut apporter un éclairage sur les processus SQL qui utilisent des ressources. Il y a quelques autres rapports liés au CPU si vous regardez autour. J'allais vous montrer d'autres DMV, mais si vous avez déjà vérifié, je vais sauter.

Vous pouvez utiliser sp_BlitzCache pour trouver L'UNITÉ CENTRALE la plus consommatrice requête. Vous pouvez également Trier par IO et d'autres choses aussi bien. Ceci utilise les informations DMV qui s'accumulent entre les redémarrages.

Cet article a l'air prometteur.

stackoverflow bonté de la part de M. Ozar.

18
répondu Sam 2017-05-23 12:26:32

Selon l'article sur sqlserverstudymaterial;

Rappelez-vous que "%temps Privilégié" n'est pas basé sur 100%.Il est basé sur le nombre de processeurs.Si vous voyez 200 pour sqlserver.exe et le système a 8 CPU puis CPU consommé par sqlserver.exe est de 200 sur 800 (seulement 25%).

si la valeur "% temps privilégié " est supérieure à 30%, elle est généralement causée par des pilotes défectueux ou un logiciel antivirus. Dans de telles situations, assurez-vous que le BIOS et filtre à disques sont à jour, et ensuite essayer de désactiver le logiciel anti-virus temporairement pour voir le changement.

si "% Utilisateur temps " est élevé, alors il y a quelque chose de consommateur de SQL Server. Il existe plusieurs modèles connus qui peuvent être causés haut CPU pour les processus tournant dans le serveur SQL y compris

0
répondu Supriyo 2016-04-03 19:50:15