您的位置:首页 > 编程语言 > PHP开发

常用性能分析工具之systemtap、getPerfInfo

2016-10-18 16:53 274 查看

1)SystemTap 是监控和跟踪运行中的 Linux 内核的操作的动态方法。

  a)SystemTap 脚本由探针和在触发探针时需要执行的代码块组成。探针有许多预定义模式,如下:

  #begin 在脚本开始时触发

  #end 在脚本结束时触发

  #kernel.function("sys_sync")    调用 sys_sync 时触发

  #kernel.function("sys_sync").call   同上

  #kernel.function("sys_sync").return   返回 sys_sync 时触发

  #kernel.syscall.*     进行任何系统调用时触发

  #kernel.function("*@kernel/fork.c:934") 到达 fork.c 的第 934 行时触发

  #module("ext3").function("ext3_file_write")  调用 ext3 write 函数时触发

  #timer.jiffies(1000)     每隔 1000 个内核 jiffy 触发一次

  #timer.ms(200).randomize(50)    每隔 200 毫秒触发一次,带有线性分布的随机附加时间(-50 到 +50)

  b)SystemTap 的语言元素 

  #if (exp) {} else {}     标准的 if-then-else 语句

  #for (exp1 ; exp2 ; exp3 ) {}   一个 for 循环

  #while (exp) {}     标准的 while 循环

  #do {} while (exp)     一个 do-while 循环

  #break      退出迭代

  #continue      继续迭代

  #next      从探针返回

  #return      从函数返回一个表达式

  #foreach (VAR in ARRAY) {}    迭代一个数组,将当前的键分配给 VAR

 2)getperfinfo是我们公司开发的自动化检证工具。

   a)getPerfInfo.sh [选项参数]

   --notop     不采集top信息

   --iotop     采集iotop信息

   --noiotop     不采集iotop信息

   --novirttop     不采集virt-top信息

   --netstat     采集网络信息。因为采集网络信息时负载和信息量会显著增加,要确保提前进行。

   -d outdir     将结果输出到目录。当输出目录不存在,自动创建一个目录。当输出目录存在,报错。默         认输出目录是/tmp/perfMMDDhhmmss

   -z outfile     指定输出文件

   Interval     采集间隔

   count     采集次数

   --kill     强制停止单次采集

   --rstart     循环采集

   --rstop     停止循环采集

   -r rotation     循环采集,可设置1-1000,默认7次

   -v      本工具版本信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux systemtap