Overblog
Suivre ce blog
Editer l'article Administration Créer mon blog
7 novembre 2010 7 07 /11 /novembre /2010 17:46

 

Comment faire avec Dtrace pour calculer le nombre de processus initié par un démon sur une période donnée ? Deux providers répondent à cette problématique : le provider profile et le provider tick. La différence entre ces deux providers est la suivante : profile se déclenche à chaque intervalle défini sur chaque CPU alors que le provider tick se déclenche que sur une seule CPU à chaque intervalle (La CPU concernée peut changer).

 

1er exemple avec le provider tick. J'utilise le démon sshd (son pid correspond à 449).

# cat timer-tick.d
#!/usr/sbin/dtrace -qs

proc:::create
/ pid == 449 /
{
        @counts["sshd fork"] = count();
}

tick-1m
{
        exit(0);
}

 

On vérifie le résultat

# ptime ./timer-tick.d
sshd fork  3

real     1:00.473
user        0.205
sys         0.277

 

2ème exemple avec le provider profile. J'utilise toujours le démon sshd (toujours le même pid).

# cat timer-tick.d
#!/usr/sbin/dtrace -qs

 

proc:::create
/ pid == 449 /
{
        @counts["sshd fork"] = count();
}

profile-1m

{
        exit(0);
}

 

On vérifie de nouveau le résultat

# ptime ./timer-profile.d
sshd fork  5

real     1:00.477
user        0.206
sys         0.261

 

Cet article est un petit clin d'oeil à une question posée par un collègue. 

Partager cet article

Published by gloumps - dans dtrace
commenter cet article

commentaires