Solaris 动态跟踪指南

第 16 章 选项和可调参数

为了允许进行自定义,DTrace 为其使用者提供了多种重要的自由度。为最大限度地降低需要特定调整的可能性,DTrace 将通过使用合理的缺省值和灵活的缺省策略来实现。但是,可能会出现要求基于各个使用者调整 DTrace 行为的情况。本章介绍 DTrace 选项和可调参数,以及可用于修改它们的接口。

使用者选项

通过设置或启用这些选项,可对 DTrace 进行调整。下表中说明了可用的选项。对于一些选项,dtrace(1M) 提供了对应的命令行选项。

表 16–1 DTrace 使用者选项

选项名 

值 

dtrace(1M) 别名

说明 

参见章节 

aggrate

time

 

聚合读取的速率 

第 9 章

aggsize

size

 

聚合缓冲区大小 

第 9 章

bufresize

automanual

 

缓冲区调整大小策略 

第 11 章

bufsize

size

-b

主体缓冲区大小 

第 11 章

cleanrate

time

 

清除速率。必须以每秒次数为单位指定,且带有 hz 后缀。

第 13 章

cpu

scalar

-c

启用跟踪的 CPU 

第 11 章

defaultargs

— 

 

允许引用未指定的宏参数 

第 15 章

destructive

— 

-w

允许破坏性操作 

第 10 章

dynvarsize

size

 

动态变量空间大小 

第 3 章

flowindent

— 

-F

缩进函数输入并加前缀 ->;取消缩进函数返回并加前缀 <-

第 14 章

grabanon

— 

-a

声明匿名状态 

第 36 章

jstackframes

scalar

 

jstack() 的缺省栈帧数

第 10 章

jstackstrsize

scalar

 

jstack() 的缺省字符串空间大小

第 10 章

nspec

scalar

 

推理数 

第 13 章

quiet

— 

-q

仅输出显式跟踪的数据 

第 14 章

specsize

size

 

推理缓冲区大小 

第 13 章

strsize

size

 

字符串大小 

第 6 章

stackframes

scalar

 

栈帧数 

第 10 章

stackindent

scalar

 

缩进 stack()ustack() 输出时要使用的空格字符数

第 10 章

statusrate

time

 

状态检查的速率 

 

switchrate

time

 

缓冲区切换的速率 

第 11 章

ustackframes

scalar

 

用户栈帧数 

第 10 章

对于表示大小的值,可以根据需要指定 kmgt 作为后缀,以分别表示千字节、兆字节、千兆字节和兆兆字节。对于表示时间的值,可以根据需要指定 nsusmsshz 作为后缀,以分别表示纳秒、微秒、毫秒、秒和每秒次数。

修改选项

在 D 脚本中,可以使用 #pragma D,并后跟字符串 option 和选项名称来设置选项。如果选项接受一个值,则该选项名称后应跟等号 (=) 和选项值。以下示例都是有效的选项设置:

#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

dtrace(1M) 命令还可在命令行中接受选项设置,作为 -x 选项的参数。例如:


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

如果指定的选项无效,dtrace 将指示该选项名称无效并退出:


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

同样,如果给定选项的选项值无效,dtrace 将指示该值无效:


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

如果多次设置某选项,则后续设置将覆写先前的设置。某些选项(如 grabanon只能设置。此类选项表现为,您可以对其进行设置,但以后将无法取消该设置。

为启用匿名而设置的选项将由声明匿名状态的 DTrace 使用者接受。有关启用匿名跟踪的信息,请参见第 36 章