Constante SQL Server 80% d'Utilisation CPU

Nous avons une petite (pour l'instant) Asp.Net MVC 5 site web dédié, VPS. Quand je vais sur le serveur et le feu-le gestionnaire des tâches, je vois que "SQL Server, Windows NT 64 bits" est à l'aide d'environ 80% de CPU et de 170MB de RAM et IIS à l'aide de 6% de CPU et de 400 mo de RAM. Serveur Spécifications sont:

  • CPU 1.90 Ghz dual core
  • De mémoire 2 go de
  • Windows Server 2012
  • SQL Server Express 2012
  • De l'Espace disque: 25 GO, 2.35 Gratuit.

La base de données n'est pas très grand. Sa sauvegarde est inférieur à 10 mo.

J'ai essayé d'optimiser le site web autant que je le pouvais. J'ai ajouté une mise en cache beaucoup de contrôleurs et de mise en œuvre de beignet de mise en cache pour beaucoup de contrôleurs. Mais aujourd'hui, même si il n'y avait que 5 utilisateurs en ligne, notre recherche ne fonctionne pas. J'ai redémarré Windows sur le serveur, et il a commencé à travailler, mais j'ai eu l'utilisation élevée de l'UC à la minute le serveur a commencé. Fait intéressant, quand j'ouvre le Serveur SQL server Management Studio et essayer d'obtenir le rapport pour le haut de l'UC-query, il dit qu'il n'y a pas de requêtes actuellement, la consommation CPU!!! Mais en même temps, je peux voir que SQL server consomme beaucoup de CPU. Comment puis-je examiner ce qui prend tout le CPU? Ci-dessous est une image du serveur:

Constante SQL Server 80% d'Utilisation CPU

J'étais/suis très prudent avec la conception et la mise en œuvre du site web. Tous les accès base de données est par le biais de la dernière version de l'Entity Framework. Je me demande juste si le serveur est specs sont faibles. Toute aide serait très appréciée.

Mise à jour:

Voici le résultat de la sp_who2 procédure stockée.

Constante SQL Server 80% d'Utilisation CPU

Avez-vous des déclencheurs ou des procédures stockées qui pourrait être pris dans une boucle infinie?
Essayez exécutant directement EXEC sp_who2. Il n'existe aucun processus actifs? Vous avez probablement reconnaître par la quantité de temps CPU passé. Vous pouvez également essayer de configuration des symboles dans l'explorateur de processus et de regarder les rayons sqlservr.exe. Ou de capturer un profil avec PerfView. Les piles sont souvent éclairants.
Non, juste de base EntityFramework trucs pour Asp.Net MVC.
Je n'ai pas beaucoup d'expérience dans l'administration des choses. Pourriez-vous m'aider un peu plus? Comme poster des liens vers des articles que j'ai pu lire et tutoriels. Ce serait très apprécié.
ouais faire un sp_who2 @usr suggéré. Vous pourriez vouloir démarrer un générateur de profils SQL exemple, depuis EF est connu de graves problèmes avec le N+1 et au moins 4 table imbriquée instruction select d'un objet simple sans expansion.

OriginalL'auteur Alireza Noori | 2014-04-08