Guia de rastreamento dinâmico Solaris

Cancelando agregações

Ao usar o DTrace para criar scripts de monitoração simples, você pode cancelar periodicamente os valores em uma agregação usando a função clear (). Essa função possui uma agregação como seu único parâmetro. A função clear() cancela somente os valores da agregação; as chaves da agregação são mantidas. Assim, a presença de uma chave em uma agregação que possui um valor associado de zero indica que a chave tinha um valor diferente de zero que foi subseqüentemente definido como zero como parte de clear(). Para descartar os valores de uma agregação e suas chaves, use trunc(). Consulte Truncando agregações para obter detalhes.

O exemplo a seguir adiciona clear() ao Exemplo 9–1:

#pragma D option quiet

BEGIN
{
	last = timestamp;
}

syscall:::entry
{
	@func[execname] = count();
}

tick-10sec
{
	normalize(@func, (timestamp - last) / 1000000000);
	printa(@func);
	clear(@func);
	last = timestamp;
}

Enquanto o Exemplo 9–1 mostra a taxa de chamada do sistema durante a invocação de dtrace, o exemplo anterior mostra a taxa da chamada do sistema somente para o período de dez segundos mais recente.