IIS App Pool Utilisation élevée du processeur malgré aucune demande


10

J'ai récemment migré un ensemble de serveurs Windows Server 2008 R2 / IIS 7.5 vers de nouveaux serveurs exécutant Windows Server 2012 / IIS 8.

Je rencontre un comportement étrange d'IIS. Nous avons 2 serveurs identiques, chaque serveur exécute 2 sites Web, chacun sur son propre pool d'applications. Le code de chacun des sites Web est identique. (Littéralement ... mêmes DLL et tout, configuration légèrement différente).

Les pools d'applications sont configurés pour recycler selon un calendrier toutes les 24 heures, mais pendant cette période de 24 heures, l'utilisation du processeur du processus de travail w3wp augmente par incréments de 12,5% (le serveur a 8 processeurs, donc je ne pense pas que ce soit une coïncidence).

Une fois que l'utilisation du processeur a augmenté, elle ne redescendra pas tant que l'application ne sera pas recyclée. Pour autant que je sache, l'application ne fait rien et ne traite AUCUNE demande pour le moment. Je peux bloquer tout le trafic vers le serveur et l'utilisation du processeur y restera. Je peux même redémarrer le site Web et l'utilisation du processeur reste la même. La seule façon de réinitialiser l'utilisation du processeur est de recycler ou de redémarrer le pool d'applications sur lequel il s'exécute.

Je suis quelque peu certain que ce problème n'a rien à voir avec mon code, mais une sorte de mauvaise configuration IIS ou un changement dans IIS 8 qui fonctionne mal avec la configuration matérielle ou quelque chose?

Je ne sais pas si c'est important ou non, mais ce sont des serveurs Rackspace Performance Cloud.

Voici une capture d'écran pour vous montrer la charge CPU au fil du temps sur ces serveurs (les flèches vertes indiquent les moments où le pool d'applications recycle. Vous pouvez voir que chaque plateau est un multiple entier de 12,5%:

entrez la description de l'image ici

Quelqu'un a-t-il observé ce comportement? J'ai trouvé cette question de 2009 avec quelqu'un ayant ce qui semble être le même problème avec IIS 6:

IIS w3wp utilisant un processeur élevé sans trafic

Toute aide est très appréciée

Réponses:


1

J'ai eu exactement le même problème avec Sharepoint 2013 et IIS 8 en 2012 ... Nous n'avons jamais dépanné, mais à la place rétrogradé vers SP2013 sur 2008 R2 et tout allait bien.


2
homme. après tout le travail que je viens de faire pour migrer, ce n'est pas la réponse que j'espérais ...: /
Leland Richardson

1

Vous pouvez essayer d' utiliser l' outil de diagnostic de débogage pour traquer ce qui est à l' origine du problème. Il sert généralement à résoudre les pannes et les fuites de mémoire, mais pourrait aider à identifier le composant à l'origine du problème.


Comment utiliser l' outil de diagnostic de débogage par programme quand high CPU or RAM more 90%?
Kiquenet

@Kiquenet Vous pouvez essayer de faire un vidage de mémoire du processus puis de l'analyser sur une autre machine. Je suis confronté à un problème similaire et j'ai pu capturer un vidage en <1 min sur un serveur à ~ 100% d'utilisation du processeur
Piyush Saravagi

ouais, puis capturer un vidage en <1 min sur un serveur à ~ 100% d'utilisation du CPU par programme ?
Kiquenet

1

Cela ressemble vraiment à du code coincé dans une boucle infinie.

Une demande arrive, IIS commence à la servir, quelque chose (probablement un bogue) déclenche ce comportement, un thread de travail entre dans une boucle infinie et fixe un CPU à 100%, puis il reste tel quel jusqu'à ce que le pool d'applications soit recyclé.

Même si aucune nouvelle demande ne parvient, le CPU reste utilisé car le thread bloqué ne se termine jamais réellement.

Parfois, une nouvelle demande déclenche à nouveau ce comportement , puis vous obtenez deux processeurs bloqués (ou trois ou quatre ...).

Le recyclage du pool d'applications met bien sûr fin à tous les threads de travail, donc le problème est résolu ... jusqu'à ce qu'il se reproduise.


0

Vous pouvez attacher un profileur CPU au processus w3wp et voir ce qui se passe là-dedans. Vous devriez pouvoir voir ce qui consomme les cycles du processeur.


comment attacher un profileur de CPU au processus w3wp par programme lorsque le CPU ou la RAM est supérieur à 90% ?
Kiquenet

0

Cela ressemble à une boucle infinie pour moi. J'ai vu cela plusieurs fois, malgré IIS disant qu'il n'y a aucune demande en suspens. Je ne sais pas comment cela peut être, mais c'est exactement ce que vous verriez. La partie difficile est qu'IIS n'enregistre pas les demandes tant qu'elles ne sont pas terminées, il est donc difficile de déterminer quelle demande déclenche ce comportement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.