Guía de seguimiento dinámico de Solaris

Capítulo 16 Opciones y optimizables

Para permitir la personalización, DTrace ofrece a los consumidores diferentes e importantes niveles de libertad. Para reducir al mínimo la posibilidad de necesitar una configuración específica, DTrace se implementa empleando valores predeterminados razonables y directivas predeterminadas flexibles. Sin embargo, podrían darse casos en los que fuera necesario el ajuste de la conducta de DTrace para cada consumidor. Este capítulo describe las opciones y optimizables de DTrace, así como las interfaces que pueden utilizarse para modificarlas.

Opciones del consumidor

DTrace se ajusta mediante la configuración o activación de opciones. En la tabla siguiente se describen las opciones disponibles. Para algunas opciones, dtrace(1M) proporciona la opción de línea de comandos correspondiente.

Tabla 16–1 Opciones de consumidor de DTrace

Nombre de la opción 

Valor 

Alias dtrace(1M)

Descripción 

Consulte el capítulo 

aggrate

time

 

Velocidad de lectura de adición 

Capítulo 9Adiciones

aggsize

size

 

Tamaño de la memoria intermedia de adición 

Capítulo 9Adiciones

bufresize

auto o manual

 

Directiva de cambio de tamaño de la memoria intermedia 

Capítulo 11Memorias intermedias y almacenamiento en memoria intermedia

bufsize

size

-b

Tamaño de la memoria intermedia principal 

Capítulo 11Memorias intermedias y almacenamiento en memoria intermedia

cleanrate

time

 

Velocidad de limpieza. Debe especificarse un número por segundo con el sufijo hz.

Capítulo 13Seguimiento especulativo

cpu

scalar

-c

CPU en la que desea habilitar el seguimiento 

Capítulo 11Memorias intermedias y almacenamiento en memoria intermedia

defaultargs

— 

 

Permitir referencias a argumentos de macro no especificados 

Capítulo 15Secuencias de comandos

destructive

— 

-w

Permitir acciones destructivas 

Capítulo 10Acciones y subrutinas

dynvarsize

size

 

Tamaño de espacio variable dinámico 

Capítulo 3Variables

flowindent

— 

-F

Entrada de función de sangría y prefijo con ->; devolución de función de no sangría y prefijo con <-

Capítulo 14Utilidad dtrace(1M)

grabanon

— 

-a

Declara el estado anónimo 

Capítulo 36Seguimiento anónimo

jstackframes

scalar

 

Número de estructuras de pila predeterminadas jstack()

Capítulo 10Acciones y subrutinas

jstackstrsize

scalar

 

Tamaño de espacio de cadena predeterminado para jstack()

Capítulo 10Acciones y subrutinas

nspec

scalar

 

Número de especulaciones 

Capítulo 13Seguimiento especulativo

quiet

— 

-q

Emite como salida sólo los datos de los que se ha realizado un seguimiento de forma explícita 

Capítulo 14Utilidad dtrace(1M)

specsize

size

 

Tamaño de la memoria intermedia de especulación 

Capítulo 13Seguimiento especulativo

strsize

size

 

Tamaño de cadena 

Capítulo 6Cadenas

stackframes

scalar

 

Número de estructuras de pila 

Capítulo 10Acciones y subrutinas

stackindent

scalar

 

Número de caracteres de espacios en blanco a utilizar al realizar la sangría de la salida de stack() y ustack()

Capítulo 10Acciones y subrutinas

statusrate

time

 

Velocidad de comprobación de estado 

 

switchrate

time

 

Velocidad de conmutación de memoria intermedia 

Capítulo 11Memorias intermedias y almacenamiento en memoria intermedia

ustackframes

scalar

 

Número de estructuras de pila de usuario 

Capítulo 10Acciones y subrutinas

A los valores que indiquen tamaños se les puede asignar un sufijo opcional de k, m, g o t para indicar kilobytes, megabytes, gigabytes y terabytes respectivamente. A los valores que indiquen tiempo se les puede asignar un sufijo opcional de ns, us, ms, s o hz para indicar nanosegundos, microsegundos, milisegundos, segundos y número por segundo, respectivamente.

Modificación de opciones

Es posible definir las opciones en una secuencia de comandos D utilizando #pragma D seguido de la cadena option y el nombre de la opción. Si la opción toma un valor, el nombre de la opción debe venir seguido de un signo igual (=) y del valor de la opción. Los siguientes ejemplos son todos ajustes de opción válidos:

#pragma D option nspec=4
#pragma D option grabanon
#pragma D option bufsize=2g
#pragma D option switchrate=10hz
#pragma D option aggrate=100us
#pragma D option bufresize=manual

El comando dtrace(1M) también acepta la configuración de opciones en la línea de comandos como argumento de la opción -x. Por ejemplo:


# dtrace -x nspec=4 -x grabanon -x bufsize=2g \
    -x switchrate=10hz -x aggrate=100us -x bufresize=manual

Si se especifica una opción no válida, dtrace indica que el nombre de la opción no es válido y se cierra:


# dtrace -x wombats=25
dtrace: failed to set option -x wombats: Invalid option name
#

De forma similar, si un valor de opción no es válido para la opción proporcionada, dtrace indicará que el valor no es válido:


# dtrace -x bufsize=100wombats
dtrace: failed to set option -x bufsize: Invalid value for specified option
#

Si se define una opción en más de una ocasión, los posteriores ajustes sobrescribirán los ajustes previos. Algunas opciones, como grabanon, podríansólo definirse. La presencia de dicha opción la define, y no podrá anular su definición posteriormente.

El consumidor de DTrace que declara el estado anónimo aceptará las opciones que estén definidas para la habilitación anónima. Consulte el Capítulo 36Seguimiento anónimo para obtener información sobre cómo activar el seguimiento anónimo.