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:
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.
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
Vous devez vous connecter pour publier un commentaire.
Je suis d'accord avec l'exécution de SQL Profiler à l'endroit requête importante des durées et des grandes opérations d'écriture. Essayez d'exécuter l'analyseur de performances et de repérer d'éventuelles fuites sur les conduites (récupérée connexions).
OriginalL'auteur Spencer
Ce qui pourrait arriver si la mémoire d'utilisation est plus que la mémoire disponible sur la boîte. La valeur par défaut paramètre de la mémoire de 2147483647MB. Dans notre cas, l'AWS boîte avait seulement 30,5 GO nous avons donc changé le réglage de 26GB et l'utilisation du PROCESSEUR est réduite à 40%. Vous devez généralement laisser 20% de la mémoire pour le système d'exploitation et ses opérations.
OriginalL'auteur Chand