[MAJ 10/03/2017] Performance Monitor (ou PerfMon) est l’outil indispensable pour monitorer les performances de vos serveurs Windows. L’un des problèmes les plus fréquents avec Perfmon est d’identifier une instance particulière d’un processus. En effet PerfMon les numérotent de manière séquentielle (ici pour des worker processes IIS) : w3wp, w3wp#1, w3wp#2, w3wp#3 … Il est donc difficile de faire la correspondance avec un ID de processus (PID). Heureusement un workaround existe : https://techcommunity.microsoft.com/t5/ask-the-performance-team/perfmon-identifying-processes-by-pid-instead-of-instance/ba-p/374561.
Dans le cadre d’un serveur IIS, il ne nous reste plus qu’à faire le lien entre le PID et l’application concernée via le task manager (ou autres outil comme pslist, PowerShell).
Deux possibilités :
-
Pour le peu que l’on utilise l’identité par défaut depuis IIS 7.5 (cf. ApplicationPoolIdentity), il est alors facile de faire la correspondance (Identité = Nom de l’application pool – voire le nom du site web si celui ci a été créé via la console IIS) comme en atteste la capture d’écran ci-dessous:
-
Dans d’autres cas cela parait un peu plus compliqué 🙂
Je vous propose dans cette article un script PowerShell (disponible ici) qui vous offrira un état des lieux comme celui-ci et sans devoir effectuer par le workaround précédemment évoqué (une solution universelle en somme) :
On constate rapidement que :
-
Nous avons 6 applications réparties sur 5 sites (le site www.northwindtraders.com hébergent 2 applications : www.northwindtraders.com et www.northwindtraders.com/HR)
-
L’application pool www.northwindtraders.com est utilisé par les sites www.northwindtraders.com et intranet.northwindtraders.com
-
Le site www.contoso.com est configuré en mode « web gardening » et actuellement 2 worker processes prennent en charge les requêtes à destination de ce site.
-
Les colonnes PID et Instance nous permettent de faire le lien entre les PID et les instances sous PerfMon. Dans le cas de la deuxième ligne le processus 1512 correspond à l’instance w3wp#1 et le processus 1520 correspond à l’instance w3wp#2 (l’ordre est préservé)
- We have 6 applications spread over 5 sites (The site www.northwindtraders.com hosts 2 applications www.northwindtraders.com and www.northwindtraders.com/HR)
- The www.northwindtraders.com application pool is used by the www.northwindtraders.com and intranet.northwindtraders.com sites
- The site www.contoso.com is configured for « web gardening » mode and 2 worker processes currently support queries to this site.
- The PID and Instance columns allow us to make the connection between the PID and the instances in PerfMon. In the case of the second line the PID 1512 matches the instance w3wp#1 and the PID 1250 matches the instance w3wp#2 (the order is preserved)