IIS 7 processus de travail de goulot d'étranglement, le grand nombre de demandes en attente de sous le pool d'applications ASP.NET 3.5 + 2.0
Je suis en utilisant ASP.NET 2.0, .NET Framework 2.0, et IIS 7. Je vois une grande file d'attente de "demandes" apparaissent dans le cadre du "processus de travail". L'état a enregistré semblent être Authenticate Request
et Execute Request Handles
plus qu'autre chose.
J'ai modifié aspnet.config
dans C:\Windows\Microsoft.NET\Framework64\v2.0.50727
(32 bits chemin et 64 bits de chemin d'accès) pour inclure:
maxConcurrentRequestsPerCPU="50000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="50000"
J'ai modifié machine.config
dans C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
(32-bit et 64-bit chemin d'accès) pour inclure:
autoConfig="false"
maxIoThreads="100"
maxWorkerThreads="100"
minIoThreads="50"
minWorkerThreads="50"
minFreeThreads="176"
minLocalRequestFreeThreads="152"
Toujours je reçois cette question.
Le problème se manifeste comme un grand nombre de demandes dans le Processus de travail de la file d'attente.
Le nombre de connexions en cours sur le site web d'affichage de 500 lorsque ce problème se produit. Je ne pense pas que j'ai vu plus de 500 connexions simultanées sans que cela se produise.
L'application web ralentit que les demandes de bloc.
De l'actualisation de l'application de la piscine résout un certain temps (comme prévu) le fait que la charge est répartie entre les deux bassins.
L'application de la piscine en question FIXE de DEMANDE ont été fixés pour l'actualisation des données sur les 50000.
Note: .NET 3.5 framework utilise le framework 2.0 appnet et les fichiers de configuration de machine, je crois.
Serveur de ressources (CPU, RAM) ne sont pas utilisés pour le plein potentiel.
Merci pour le post, Dave, à la bonne place. Modifié.
Un plaisir de vous aider... j'ai été la navigation dans les eaux troubles de l'ASP tuning récemment moi-même! 🙂
OriginalL'auteur scott_lotus | 2011-04-15
Vous devez vous connecter pour publier un commentaire.
Puis-je vous suggérer de prendre un coup d'oeil sur les matériaux sur Tess Ferrandez du site Si C'Est Cassé, Réparer, Vous Devriez.
Ce que vous voulez faire est de capturer une image du processus de travail à l'aide de ADPlus au moment de l'expérience un grand nombre de demandes dans la file d'attente demande et lors de l'application commence à stagner.
Une fois que vous avez attrapé cette image que vous souhaitez charger ce dans WinDBG+SOS et commencer à traquer le coupable.
Tess a une grande série d'ateliers pratiques sur la façon d'utiliser ces outils à bon escient:
Si vous êtes en mesure de, vous pouvez également joindre un profiler à l'application (comme RedGate de Performance Profiler pour essayer de découvrir la cause de racine.
oui il peut "simplement" contact support.microsoft.com en fait nous devrions tous et toutes :). Mais alors il faudrait aussi fin avec un projet de loi pour leur temps et quelques jours d'attente pour le support technique, éventuellement, de lui dire de fixer son code. La seule façon qu'il va savoir si il a un blocage est d'examiner la demande en utilisant des outils de diagnostic tels que ADPlus+WinDBG+SOS. Vous ne pouvez pas démarrer "thread" réglage jusqu'à ce que vous savez ce que l'application est, et même alors, de fil réglage n'est probablement pas remédier à ça si il y a un blocage.
OriginalL'auteur Kev
Suivre l'article de la base de http://support.microsoft.com/kb/821268 et me mettre à jour, si vous êtes toujours confronté à la question.
Vous pouvez également essayer FREB suivi dans IIS 7. http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/
En outre, l'un des aspect du logiciel est la production de rapports. Lorsqu'un rapport est exécuté, il appelle le service en cours d'exécution dans le même pool d'applications pour trouver l'adresse de chaque ligne. Lorsque le processus de travail à la croissance de ces appels d'adresses sont le plus en avant .. j'.e de sorte que notre application est exposée à des ralentissements cause par quelque utilisateur fait un rapport. Ce n'est pas le point thhough , le point est en train de changer les variables de l'environnement devrait permettre à plus de ressources pour être utilisés, mais ne. j'.e donc je ne pense pas que ses erreurs c'est le problème, c'est la quanitiy d'une pièce d'appels.
Voir si vous pouvez créer un dump et l'hôte est quelque part d'où je peux le télécharger. Va essayer de l'aider.
Désolé pour la réponse tardive. Question a soulevé sa tête laide de nouveau lors de l'activation d'une nouvelle fonctionnalité qui appelle une table pour un certain nombre de lignes: 1) de chargement de la page, 2) actualisation de la page 3) 2 minutes prévu l'actualisation automatique sur chaque page à l'intérieur d'un asp.net application. Cette fonction (selon performances du moniteur) augmente le nombre total de conncurrent connexions à la IIS7 "web service". Apparaît toujours à frapper les 600 + connecitons puis les goulots d'étranglement et le journal de connexion commence à augmenter. Lors de la désactivation de cette nouvelle fonctionnalité, le problème disparaît.Pas un IO problème ,tout le reste ok,autre site , piscine ok sur le serveur.
Ps dans le processus d'ouverture de conseil tâche avec le FAI & MS, seront de retour à tous les résultats si/lorsque le problème s'est résolu.
OriginalL'auteur Rahul Soni
Fini en augmentant le processus de travail de 1 à 2 (web jardin). Problème n'a pas réapparu depuis bien que ont été, sont à l'aide de sessions, mais au cours d'un mois il n'y a eu aucun rapport de problème de session des utilisateurs finaux.
MODIFIÉES AFIN D'AJOUTER:
La question spécifique a été liée à la production d'un très grand CSV rapports qui sont traitées sur le processus de travail côté serveur, pas un bug , juste la façon dont il fonctionne. Les rapports HTML sont beaux, la transformation XML est passé à côté client.
La séparation des processus de travail résolu les problèmes jusqu'à ce que le serveur xml côté de transformer la création de fichier csv peut être transmis à un processus plus donc de supprimer toute influence de la part d'autres utilisateurs. A été tout simplement vers le bas à la taille des fichiers /nombre de lignes que nous allions travailler avec lors de la tentative de créer des rapports au format CSV.
OriginalL'auteur scott_lotus