er_label 的一个用途是支持将由客户端驱动的服务器程序作为一个独立的进程或多个进程进行分析。在这种使用模型中,使用 collect 命令启动服务器,以便开始在服务器上创建实验。服务器启动并准备好接受客户端请求后,您便可运行客户端脚本,以请求驱动服务器并运行 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
以下样例脚本显示了一个备选用法,该脚本生成名为 all 的包含所有请求的单个标签。
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
请注意,在第二个 er_label 调用中的 –t stop 后面未跟随时间指定,因此缺省采用 stop=@。
可以创建更复杂的脚本,并且可以在相同节点或不同节点上同时运行多个脚本。如果实验位于所有节点都可访问的共享目录中,则脚本可以在相同的实验中标记间隔。各个脚本中的标签可以是相同的,也可以是不同的。