2010-10-11 26 views
2

J'ai un problème persistant avec mon site Web, où il semble que le W3wp.exe se bloque et à son tour, toute personne tentant de se connecter au site recevra une erreur de dépassement de délai du serveur SQL.Délai d'attente SQL Server causé par le plantage de w3wp.exe

L'erreur est cette ...

System.Data.SqlClient.SqlException: Délai d'attente expiré. Le délai d'expiration s'est écoulé avant la fin de l'opération ou le serveur ne répond pas. En réalité, lorsque cela se produit, l'utilisation du processeur sur le serveur atteint 100% et reste là. Pendant ce temps, si j'essaie de me connecter à la page d'accueil, le site semblera se charger et ensuite expirer. C'est également le cas lorsque j'essaie de me connecter à la base de données via le studio de gestion. Je reçois l'erreur SQL timeout ci-dessus d'ELMAH quand il m'envoie des e-mails d'exceptions. Lorsque je fais un iisreset, je peux à nouveau me connecter au serveur SQL et l'utilisation du processeur chute immédiatement.

Maintenant, j'ai déjà posté quelques questions oh ici à propos du problème en ce qui concerne l'exception SQL time out. Donc je liste mal ce que j'ai fait et ce qui im ​​en utilisant ...

• Im utilisant Linq à SQL. • SQLCacheDependancy. • IIS 7.5 & SQL Server 2008 R2. • Mise au rebut de tous les objets. • L'appel à Linq to SQL dataContext est toujours enveloppé dans un mot-clé USING. Ces erreurs de dépassement de temps se produisent rarement, peut-être une fois tous les 2 jours, mais aujourd'hui, quand je me suis levé, ma boîte de réception était pleine d'exceptions de temps, indiquant une se produisait du jour au lendemain. L'autre chose étrange est que quand par exemple il est arrivé la nuit dernière, il était environ 4 heures du matin, quand je l'ai essayé ce matin à 8 heures le site a bien fonctionné, donc je semble que W3wp.exe, serveur SQL ou les deux réussir à recycler ou à se réinitialiser.

Quelqu'un peut-il voir ce qui peut causer ce comportement? ou pointez-moi dans la bonne direction de ce que peut-être la cause? ou peut-être même une solution possible?

Toute aide est très appréciée

Truegilly

+0

Votre instance SQL se trouve-t-elle sur la même machine? Avez-vous vérifié les blocs SQL - avez-vous des notifications de l'instance sql? –

+0

Pouvez-vous coller plus de détails sur votre dépendance de cache sql? –

+0

Combien d'utilisateurs gagnez-vous? Combien de requêtes atteignent la DB/seconde? –

Répondre

0

Je suppose que le délai d'attente est à cause de la pointe élevée du processeur, et non l'inverse. Si votre IIS et SQL sont sur la même machine, essayez de trouver le processus (à partir du gestionnaire de tâches) qui accapare le processeur.

S'il s'agit du serveur Web, l'installation exécute des compteurs, en particulier ceux liés à .NET Garbage Collection, et vérifie la fréquence de son exécution. Vérifiez également la taille de l'objet Gen2. Vous devriez collecter ces données à partir du moment où elles fonctionnent bien jusqu'à ce que le CPU atteigne son maximum, et comparer ce qui "grandit" dans les compteurs. Vérifiez si le suivi des objets est activé dans le contexte de données, ainsi que la durée de votre utilisation (datacontext) {...}.

Si c'est le sqlserver qui contient le CPU, essayez d'utiliser le following Microsoft article pour analyser le problème.