Oracle Solaris Studio 12.4 Man Pages

Exit Print View

Updated: January 2015
 
 

er_label(1)

Name

er_label - 标记实验的某些部分以便更容易过滤

Synopsis

er_label arguments

Description

er_label 实用程序能以持续指定的标签标注实验来定义给定实验的一部分,可用于构造过滤条件以便检查实验数据。

基于时间的标签

基于时间的标签支持开始和停止标记。标记定义的范围包括任意数量的开始和停止对之间的所有分析事件。如果某个停止标记在任何开始标记前面,或者在上一个停止标记后面而中间没有开始标记,则将忽略该停止标记。如果某个开始标记在上一个开始标记后面而中间没有停止标记,则将忽略该开始标记。

可以将时间标记指定为当前时间、当前时间加上或减去偏移,或者指定为相对于实验中创始进程开始时间的偏移。

与不同标签关联的过滤条件和标记完全独立。

必需的选项

必需的选项

er_label 的所有调用都必须指定标签名称和实验名称。

-o experiment

指定标签应用于的实验。只能指定一个实验,不支持实验组。需要一个 -o 参数,但是该参数可出现在命令行上的任意位置。

-n label-name

指定标签。标签名称可以是任意长度,但必须是字母数字,以字母开头且没有嵌入的空格,即使用引号将字符串引起也是如此。如果 label-name 存在,会向它添加新条件;如果不存在,将创建它。需要一个 -n 参数,但是该参数可出现在命令行上的任意位置。标签名不区分大小写。标签名称不得与可以出现在过滤条件中的其他名称(包括实验中的属性或者内存对象或索引对象的名称)冲突。已装入实验中的属性是使用 er_print describe 命令列出的。内存对象是使用 er_print mobj_list 命令列出的。索引对象是使用 er_print indxobj_list 命令列出的。

Options

-C comment

添加用于解释标签的注释。可使用多个 -C 参数,它们将串联起来,注释之间有分号和空格。

-t {start|stop}[=time-specification]

指定用于在实验中定义时间范围的开始或停止点。

如果将等号后面的 time-specification 指定为 offset,是指相对于实验开始的时间。如果将等号后面的 time-specification 指定为 "@",是指当前时间;如果将其指定为 @+offset@-offset,是指当前时间之前或之后的时间。

offset 以如下格式指定:

[[hh:]mm:]ss[.uuu]

小时、分钟和亚秒部分是可选的,但秒设置是必需的。如果仅提供了秒字段,数值可大于 60,会视情况将其转换为小时和分钟。如果指定了小时字段,则秒和分钟字段中的值必须介于 0 到 59 之间。如果未指定小时字段,则分钟字段中的值可大于 60,会视情况将其转换为小时,但是秒字段中的值必须介于 0 到 59 之间。亚秒部分可指定到所需的任何精度,会将其保存到纳秒精度。

可以在一个命令中指定多个 -t 规范;将按从左至右的顺序对其进行处理。如果指定了多个指的是当前时间的规范,它们全部都指为当前时间 ("@") 捕获的一个时间戳。如果 -t stop-t start 参数后面未跟随等号与时间规范,则假定规范采用 =@

用法模型

用法模型

客户机驱动型服务器分析

er_label 的一个用途是支持将由客户机驱动的服务器作为一个独立的进程或多个进程进行分析。在该用法模型中,实验在服务器上启动。一旦服务器启动并准备好接受来自客户机的请求,即可使用包含 er_label 调用的客户机脚本驱动服务器。(在以下示例中,实验名称假定为 test.1.er)。下面是一个客户机脚本样例,该脚本将为针对服务器运行的每个请求生成时间标签:

 
for REQ in req1 req2 req3 req4 req5
do

echo "=========================================================="
echo " $REQ started at `date`"

er_label -o test.1.er -n $REQ -t start=@
run_request $REQ
er_label -o test.1.er -n $REQ -t stop=@
done

创建的五个标签中的每个标签都划分出处理指定请求所花费的时间。

下面是一种替代用法,这种用法可生成一个涵盖所有请求的标签:

 
for REQ in req1 req2 req3 req4 req5
do

echo "=========================================================="
echo " $REQ started at `date`"

er_label -o test.1.er -n all -t start=@
run_request $REQ
er_label -o test.1.er -n all -t stop
done

请注意,在最后一行中 stop 后面未跟随任何字符串;缺省采用 stop=@。可以使用更复杂的脚本,并且可以在相同节点或不同节点上同时运行多个此类脚本。各个脚本中的标签可以是相同的,也可以是不同的。

其他用法

要定义相对于实验开始时间的标签,使其涵盖从程序开始之后的 15 秒起持续时间为 10 分钟的运行部分,请使用以下命令:

 
er_label -o test.1.er -n snap -t start=15 -t stop=10:15

See also

analyzer (1) 、 collect (1) 、 er_print (1)

性能分析器手册