百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> 通过xentrace、xentrace_format和xenalyze获取Xen执行的详细参数
分享文章到:

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

发布时间:01/15 来源: 浏览: 关键词:
在Xen进行虚拟机测试时,需要了解Xen执行的细节信息,本文我们来分享如何获取更多关于Xen执行的信息,用xentrace、xentrace_format和xenalyze。

在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了)。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有18人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板