【通过限价申报买卖科创板股票的】通过xentrace、xentrace_format和xenalyze获取Xen执行的详细参数信息

更新时间:2019-10-04    来源:excel    手机版     字体:

【www.bbyears.com--excel】

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

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

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

 代码如下 # # start Xen HVM guest before this tracing
# xentrace -D -e 0x81000 -T 30 trace.data
# 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这个文件。

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

 代码如下 VMExit Count: 1117671
                Type      Total TSC      TSC Ratio    Total Count    Count Ratio        Avg TSC
  External Interrupt     2427891244           0.17         347544           0.31           6985
    Interrupt window          20988           0.00             10           0.00           2098
                 HLT     9750387024           0.66         437459           0.39          22288
              VMCALL         178912           0.00             10           0.00          17891
           CR access         402600           0.00             72           0.00           5591
     I/O Instruction     1041358192           0.07          30747           0.03          33868
               PAUSE       35244752           0.00           8067           0.01           4369
     Virtualized EOI       39250184           0.00          14425           0.01           2720
       EPT violation       44358300           0.00           3179           0.00          13953
          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了)。

本文来源:http://www.bbyears.com/bangongshuma/71089.html

热门标签

更多>>

本类排行