[libvirt-users] QEMU-KVM and bare metal performance impact

nishtala rajiv.nishtala at bsc.es
Tue Jun 30 15:27:56 UTC 2015


Hi,

My name is Rajiv Nishtala and I am a PhD student in UPC.
I am trying to investigate the performance (instructions per second 
(IPS)) impact of an application on QEMU-KVM and bare metal using the 
performance monitoring tools perfmon and perf. The performance counter 
used for measuring this is "instructions" and "instructions_retired" on 
perf and perfmon, respectively. The application is a *stress* 
microbenchmark that does not produce any cache misses (LLC).

I account for the performance of the application on QEMU-KVM using the 
following procedure:
A) Record the IPS of the QEMU-KVM (using its PID) on perf and perfmon 
when idle.
B) Launch the stress benchmark and record IPS.
C) the difference between *B* and *A* should give the performance of the 
application since the KVM does not inherently provide a technique to 
collect this statistic.

However the performance of the application on bare metal is recorded as 
is using the per-thread session available in perfmon and perf.
The sampling frequency to collect the statistics is 1 second.

The result obtained on bare metal are in the order of magnitude of 
billions. On the other hand, results from KVM do not show any difference 
in performance when idle or when an application is running and is in the 
order of magnitude of 100's of thousands.
IPS_KVM_IDLE 	LLC_KVM_IDLE 	
	IPS_KVM_STRESS 	LLC_KVM_STRESS 	
	IPS_bare metal_STRESS 	LLC_bare metal_STRESS
47902 	2495 	
	25157 	600 	
	8116556011 	3805
23437 	758 	
	48762 	1032 	
	8166564000 	2140
834370 	9954 	
	543690 	2379 	
	8326333629 	234
25261 	662 	
	49139 	997 	
	8057453733 	1399
47998 	2767 	
	23773 	600 	
	8214761042 	494
542039 	2299 	
	843266 	2231 	
	8075529487 	4593
47982 	2781 	
	25249 	603 	
	8327678364 	443
23833 	794 	
	49138 	622 	
	8058893864 	1870
832913 	9978 	
	544567 	2204 	
	8210889659 	394


I also tried using perf-kvm using the following command:
sudo perf kvm --guest --guestkallsyms=guest-kallsyms 
--guestmodules=guest-modules record -a -o perf.data

but failed with the following error:
*Couldn't record guest kernel [0]'s reference relocation symbol.
*and no events were recorded.


I describe details of QEMU and the host machine (bare metal) below.

QEMU emulator version 2.0.0 in conjunction with KVM as the virtual 
environment and libvirt 1.2.2

The guest machine is running kernel version 3.19.0-15-generic and the 
host machine is running version 3.14.5-031405-generic on a x86_64 machine
I setup the guest machine with Intel SandyBridge processor (model 
name:Intel Xeon E312xx) with the following flags: 
sockets=2,cores=2,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


Thanks
Rajiv Nishtala







WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain
information which is privileged, confidential, proprietary, or exempt
from disclosure under applicable law. If you are not the intended
recipient or the person responsible for delivering the message to the
intended recipient, you are strictly prohibited from disclosing,
distributing, copying, or in any way using this message. If you have
received this communication in error, please notify the sender and
destroy and delete any copies you may have received.

http://www.bsc.es/disclaimer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20150630/d8f34b77/attachment.htm>


More information about the libvirt-users mailing list