Syndication : Atom 1.0  RSS 2.0
Blogs des développeurs   »   Blog de Bruno Orsier

Article complet: Surveillance de processus Windows : PowerShell au lieu de perfmon !

20/01/2010

Permalink 12:42:03, Catégories: Récapitulatif Windows, PowerShell, PowerShell, 321 mots   French (FR) , Bruno Orsier

[Windows] Surveillance de processus Windows : PowerShell au lieu de perfmon !

Je dois souvent surveiller des processus, typiquement pour voir comment évolue leur consommation de mémoire, le nombre de handles, de threads etc. Pour cela, perfmon.exe est un outil bien approprié, et permet d'afficher beaucoup de compteurs de performance Windows, et également de les sauvegarder dans un fichier journal :

[Suite:]

image

Malheureusement c'est un outil bien peu ergonomique, et assez fastidieux à régler (on peut tout de même sauver les paramètres dans un fichier .msc, afin de ne pas tout recommencer à zéro à chaque fois). En particulier je déteste le choix des compteurs dans des listes déroulantes minuscules

image

ainsi que le choix des échelles pour lesquelles il faut compter les chiffres à la main (pas bien agréable quand les compteurs sont dans les 10000000 ou les 1000000000) :

image

De plus on ne peut pas faire afficher des calculs complémentaires - souvent j'aimerais voir l'écart entre deux mesures successives, afin de connaître la "vitesse" de l'évolution du compteur.

Aussi j'utilise de plus en plus PowerShell pour mes activités de surveillance de processus. Voici par exemple un petit script qui suit la mémoire utilisée.

Tout d'abord j'ai mis au point le principe directement sur la ligne de commande (le processus à surveiller est nxServer.exe) :

image

Notez que PowerShell manipule directement 1GB, 1MB, 1KB, xKB. Bien pratique pour ne pas se prendre la tête avec les grands nombres.

Une fois satisfait du principe, j'ai sauvé la ligne de commande dans un fichier :

image

fichier que j'ai ensuite édité avec PowerGUI Script Editor pour ajouter quelques fonctionnalités supplémentaires (affichage à l'écran + sauvegarde dans un fichier, calcul de la différence entre deux mesures successives) :

image

Et voilà :

image

Bon d'accord ce n'est plus très utile de diviser par 1GB, j'ai corrigé la fuite mémoire qui faisait que l'on dépassait le Giga - mais je n'ai pas envie de la réintroduire juste pour la démo !

Social Bookmarking:

                                     

Commentaires, Pingbacks:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0
Commentaire de: Bruno Orsier [Membre]
une solution plus élégante pour construire la chaîne $info consiste à utiliser les indicateurs de formatage. Exemple :

$info ="{0} == current memory = {1,10:n2}Mb == difference = {2,10:n2}b" -f (get-date), ($current_memory/ 1MB), $difference

{0}, {1} ... correspondent à la position des arguments, comme dans les chaînes .NET.

10:n2 indique le nombre minimal de caractères (s'il en manque, des espaces seront ajoutés avant ou après - selon le signe du premier élément), et le nombre de chiffres après la virgule.

Après -f on indique les arguments qui seront remplacés dans la chaîne.

Après ce nouveau formatage, une capture d'écran qui illustre mieux mon propos - la mémoire à peu près stable :

meilleur formatage
Permalien 20/01/2010 @ 13:33

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Blog de Bruno Orsier

Rechercher

<  Février 2012  >
Lun Mar Mer Jeu Ven Sam Dim
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web