Guía de seguimiento dinámico de Solaris

Truncamiento de las adiciones

Al consultar los resultados de la adición, es habitual que sólo se interese por los resultados de nivel superior. Las claves y los valores asociados a otros que no sean los de nivel superior no son interesantes. Es posible que también desee descartar el resultado de toda una adición, eliminando las claves y los valores. La función trunc() de DTrace se utiliza en estas dos situaciones.

Los parámetros de trunc() son una adición y un valor de truncamiento opcional. Sin el valor de truncamiento, trunc() descarta tanto los valores de adición como las claves para toda la adición. Cuando hay un valor de truncamiento n, trunc() descarta los valores y las claves de adición, excepto los asociados a los n valores superiores. En otras palabras, trunc(@foo, 10) trunca la adición denominada foo después de los diez valores superiores, mientras que trunc(@foo) descarta toda la adición. También se descarta toda la adición si se ha especificado 0 como valor de truncamiento.

Para ver los n valores inferiores en lugar de los n valores superiores, especifique un valor de truncamiento negativo en trunc(). Por ejemplo, trunc(@foo, -10) trunca la adición denominada foo después de los diez valores inferiores.

El siguiente ejemplo aumenta el ejemplo de llamadas del sistema para mostrar únicamente la tasa de llamadas del sistema por segundo de las diez aplicaciones principales que llaman al sistema durante un periodo de diez segundos:

#pragma D option quiet

BEGIN
{
	last = timestamp;
}

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

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

En el siguiente ejemplo, se muestra el resultado de la ejecución de la secuencia de comandos anterior en un equipo portátil con un nivel bajo de carga:


  FvwmAuto                                                          7
  telnet                                                           13
  ping                                                             14
  dtrace                                                           27
  xclock                                                           34
  MozillaFirebird-                                                 63
  xterm                                                           133
  fvwm2                                                           146
  acroread                                                        168
  Xsun                                                            616

  telnet                                                            4
  FvwmAuto                                                          5
  ping                                                             14
  dtrace                                                           27
  xclock                                                           35
  fvwm2                                                            69
  xterm                                                            70
  acroread                                                        164
  MozillaFirebird-                                                491
  Xsun                                                           1287