Administration Unix Solaris
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.