2015-07-01 80 views
-1

我想測試QEMU-KVM和主機之間的性能差異,並且無法理解如何優化我的QEMU-KVM以實現接近本機的性能。QEMU-KVM性能優化

我安裝了帶有lubuntu 14.04的QEMU-KVM,並運行了一個不產生任何緩存缺失的壓力微基準。

我正在使用perf監視工具記錄性能計數器,指令已退役。

由於QEMU不提供此性能計數器。我正在使用來自主機系統的perf記錄整個QEMU進程的性能。

獲得的結果並不反映這一點。我不確定如何設置QEMU-KVM子系統。

我在下面描述QEMU和主機(裸機)的細節。

QEMU模擬器版本2.0.0與KVM的虛擬環境,並結合的libvirt 1.2.2

來賓計算機運行的內核版本3.19.0-15-generic和主機是x86_64的機器上運行的版本3.14.5-031405-generic

guest machine with Intel SandyBridge processor (model name:Intel Xeon E312xx) with the following flags: sockets=1,cores=1,threads=1 and 4mb cache. 
More details: 
cpu family : 6 
model  : 42 
max freq  : 2394.560 MHz 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm vnmi ept xsaveopt 


The host machine is an Intel Sandy Bridge processor (Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz) with 4 cores and 6mb cache. 
cpu family : 6 
model  : 42 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid 

讓我知道,如果我可以提供任何更多的細節。

謝謝!

+0

那麼這正是你的問題嗎?您在虛擬機中看不到更多的退役說明?你有沒有看過「unhalted cycles」事件? –

+0

我認爲問題更可能是內核的一部分,perfmon不允許我收集內核級別的統計信息,而perf就是。 – tandem

回答

0

嘗試使用事件修飾符,如「PERF的幫助名單」解釋說:

EVENT MODIFIERS 
     Events can optionally have a modifer by appending a colon and one or more 
     modifiers. Modifiers allow the user to restrict the events to be counted. The 
     following modifiers exist: 

      u - user-space counting 
      k - kernel counting 
      h - hypervisor counting 
      G - guest counting (in KVM guests) 
      H - host counting (not in KVM guests) 
      p - precise level 
      S - read sample value (PERF_SAMPLE_READ) 
      D - pin the event to the PMU 

上面的文檔是不能令人滿意恕我直言,我不完全瞭解每個事件修飾符的含義。有時我會得到不一致的結果,例如用戶空間計數中的更多退役指令(「u」修飾符)比完全計數(根本沒有修飾符)更多。

我使用以下PERF版本:

>> perf --version 
perf version 3.13.11-ckt20