1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTraceToolkit脚本解析(6)-lockbydist.d

lockbydist.d位于DTraceToolkitLocks文件夹下,其功能是统计进程在获得“adaptive mutex”等待时间的分布。脚本代码就一行(略去版权信息):

lockstat:::adaptive-block { @time[execname] = quantize(arg1); }

脚本代码分析如下:
定义一个以可执行程序名字(execname)为keyaggregationtime)。监听所有lockstat Provideradaptive-block probe,其中arg1参数包含的是等待时间(单位是ns)。当probe触发时,调用quantize函数。最后脚本退出时,产生等待时间的分布图。

执行脚本,输出如下:

bash-3.2# ./lockbydist.d
dtrace: script './lockbydist.d' matched 1 probe
^C
  sched
           value  ------------- Distribution ------------- count
         2097152 |                                         0
         4194304 |@@@                                      1
         8388608 |                                         0
        16777216 |@@@@@@@@                                 3
        33554432 |                                         0
        67108864 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           12
       134217728 |                                         0

可以看到sched程序等待mutex的时间介于[67108864134217728)比较多。

参考资料:

(1)lockstat Provider

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.