通過xentrace、xentrace_format和xenalyze擷取Xen執行的詳細參數資訊

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.