当前位置:首页 > linux教程 > 列表

通过xentrace、xentrace_format和xenalyze获取Xen执行的详细参数信息

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-21 13:13:57 浏览: 评论:0 

在Xen进行测试或调优的时候,需要进行比较底层的细节分析,比如统计VMExit的频率、VMExit的类型、VMExit消耗了多少CPU时间,这时就可以使用xentrace这个工具了.

xentrace是在xen源代码中自带的一个工具,在“make tools”编译时就会默认生成,xentrace生成的数据是二进制的格式,人的肉眼不能直接读取,可以使用xentrace_format转换为凡人能够直接读取的信息,xentrace_format解析后的数据信息量一般也比较大,可能还需要自己编写解析工具来提取自己需要的数据.

使用xentrace/xentrace_format来分析HVM的VMExit的情况,可以有如下操作:

  1. # # start Xen HVM guest before this tracing 
  2. # xentrace -D -e 0x81000 -T 30 trace.data 
  3. # cat trace.data | xentrace_format xen.git/tools/xentrace/formats | ./my-xentrace-analyzer.pl 

其中-e 0×81000 是指“TRC_HVM_ENTRYEXIT”这类event的trace信息,包括VMEntry和VMExit,关于其他各种event的代号是多少,可以参考文末的参考文档;-T 30表示trace执行时间为30s.

使用xentrace_format时,需要一个格式文件作为参数,一般可以选择xen源代码中的tools/xentrace/formats这个文件.

另外,这里我还有一个自己的脚本提取自己感兴趣的数据,得到结果示例如下:

  1. VMExit Count: 1117671 
  2.                 Type      Total TSC      TSC Ratio    Total Count    Count Ratio        Avg TSC 
  3.   External Interrupt     2427891244           0.17         347544           0.31           6985 
  4.     Interrupt window          20988           0.00             10           0.00           2098 
  5.                  HLT     9750387024           0.66         437459           0.39          22288 
  6.               VMCALL         178912           0.00             10           0.00          17891 
  7.            CR access         402600           0.00             72           0.00           5591 
  8.      I/O Instruction     1041358192           0.07          30747           0.03          33868 
  9.                PAUSE       35244752           0.00           8067           0.01           4369  --phpfensi.com 
  10.      Virtualized EOI       39250184           0.00          14425           0.01           2720 
  11.        EPT violation       44358300           0.00           3179           0.00          13953 
  12.           APIC write     1333734836           0.09         276158           0.25           4829 

对于各种VMExit类型,可以参考Intel SDM 3C 中的附录 Appendix C “VMX Basic Exit Reasons” 中的介绍.

xen社区中也做了一个解析xentrace数据的工具,叫做xenalyze,没有在xen源代码中,是offline维护着的一个repository,我就使用过一下,对其还不是很熟悉.

xenalyze的源代码可以从http://xenbits.xen.org/ext/xenalyze/下载(使用hg clone命令).

在使用时,注意的是,xenalyze中用到了CPU的频率,需要根据自己CPU实际频率进行修改,否则计算出来每秒钟多少事件这样的信息就不准了,修改 xenalyze.c文件中的“#define DEFAULT_CPU_HZ 2400000000LL”这一行(已经表示2.4GHz了).

Tags: xentrace xentrace_format xenalyze

分享到: