Re: [libvirt] Qemu/KVM guest boots 2x slower with vhost_net

2011-10-09 Thread Reeted

On 10/05/11 01:12, Reeted wrote:

.
I found that virtual machines in my host booted 2x slower ... to the 
vhost_net presence

...


Just a small update,

Firstly: I cannot reproduce any slowness after boot by doing:

# time /etc/init.d/chrony restart
Restarting time daemon: Starting /usr/sbin/chronyd...
chronyd is running and online.
real0m3.022s
user0m0.000s
sys 0m0.000s

since this is a network service I expected it to show the problem, but 
it doesn't. It takes exactly same time with and without vhost_net.



Secondly, vhost_net appears to work correctly, because I have performed 
a NPtcp performance test between two guests in the same host, and these 
are the results:


vhost_net deactivated for both hosts:

NPtcp -h 192.168.7.81
Send and receive buffers are 16384 and 87380 bytes
(A bug in Linux doubles the requested buffer sizes)
Now starting the main loop
0:   1 bytes917 times --  0.08 Mbps in  92.07 usec
1:   2 bytes   1086 times --  0.18 Mbps in  86.04 usec
2:   3 bytes   1162 times --  0.27 Mbps in  85.08 usec
3:   4 bytes783 times --  0.36 Mbps in  85.34 usec
4:   6 bytes878 times --  0.54 Mbps in  85.42 usec
5:   8 bytes585 times --  0.72 Mbps in  85.31 usec
6:  12 bytes732 times --  1.07 Mbps in  85.52 usec
7:  13 bytes487 times --  1.16 Mbps in  85.52 usec
8:  16 bytes539 times --  1.43 Mbps in  85.26 usec
9:  19 bytes659 times --  1.70 Mbps in  85.43 usec
10:  21 bytes739 times --  1.77 Mbps in  90.71 usec
11:  24 bytes734 times --  2.13 Mbps in  86.13 usec
12:  27 bytes822 times --  2.22 Mbps in  92.80 usec
13:  29 bytes478 times --  2.35 Mbps in  94.02 usec
14:  32 bytes513 times --  2.60 Mbps in  93.75 usec
15:  35 bytes566 times --  3.15 Mbps in  84.77 usec
16:  45 bytes674 times --  4.01 Mbps in  85.56 usec
17:  48 bytes779 times --  4.32 Mbps in  84.70 usec
18:  51 bytes811 times --  4.61 Mbps in  84.32 usec
19:  61 bytes465 times --  5.08 Mbps in  91.57 usec
20:  64 bytes537 times --  5.22 Mbps in  93.46 usec
21:  67 bytes551 times --  5.73 Mbps in  89.20 usec
22:  93 bytes602 times --  8.28 Mbps in  85.73 usec
23:  96 bytes777 times --  8.45 Mbps in  86.70 usec
24:  99 bytes780 times --  8.71 Mbps in  86.72 usec
25: 125 bytes419 times -- 11.06 Mbps in  86.25 usec
26: 128 bytes575 times -- 11.38 Mbps in  85.80 usec
27: 131 bytes591 times -- 11.60 Mbps in  86.17 usec
28: 189 bytes602 times -- 16.55 Mbps in  87.14 usec
29: 192 bytes765 times -- 16.80 Mbps in  87.19 usec
30: 195 bytes770 times -- 17.11 Mbps in  86.94 usec
31: 253 bytes401 times -- 22.04 Mbps in  87.59 usec
32: 256 bytes568 times -- 22.64 Mbps in  86.25 usec
33: 259 bytes584 times -- 22.68 Mbps in  87.12 usec
34: 381 bytes585 times -- 33.19 Mbps in  87.58 usec
35: 384 bytes761 times -- 33.54 Mbps in  87.36 usec
36: 387 bytes766 times -- 33.91 Mbps in  87.08 usec
37: 509 bytes391 times -- 44.23 Mbps in  87.80 usec
38: 512 bytes568 times -- 44.70 Mbps in  87.39 usec
39: 515 bytes574 times -- 45.21 Mbps in  86.90 usec
40: 765 bytes580 times -- 66.05 Mbps in  88.36 usec
41: 768 bytes754 times -- 66.73 Mbps in  87.81 usec
42: 771 bytes760 times -- 67.02 Mbps in  87.77 usec
43:1021 bytes384 times -- 88.04 Mbps in  88.48 usec
44:1024 bytes564 times -- 88.30 Mbps in  88.48 usec
45:1027 bytes566 times -- 88.63 Mbps in  88.40 usec
46:1533 bytes568 times -- 71.75 Mbps in 163.00 usec
47:1536 bytes408 times -- 72.11 Mbps in 162.51 usec
48:1539 bytes410 times -- 71.71 Mbps in 163.75 usec
49:2045 bytes204 times -- 95.40 Mbps in 163.55 usec
50:2048 bytes305 times -- 95.26 Mbps in 164.02 usec
51:2051 bytes305 times -- 95.33 Mbps in 164.14 usec
52:3069 bytes305 times --141.16 Mbps in 165.87 usec
53:3072 bytes401 times --142.19 Mbps in 164.83 usec
54:3075 bytes404 times --150.68 Mbps in 155.70 usec
55:4093 bytes214 times --192.36 Mbps in 162.33 usec
56:4096 bytes307 times --193.21 Mbps in 161.74 usec
  

[libvirt] Qemu/KVM guest boots 2x slower with vhost_net

2011-10-04 Thread Reeted

Hello all,
for people in qemu-devel list, you might want to have a look at the 
previous thread about this topic, at

http://www.spinics.net/lists/kvm/msg61537.html
but I will try to recap here.

I found that virtual machines in my host booted 2x slower (on average 
it's 2x slower, but probably some parts are at least 3x slower) under 
libvirt compared to manual qemu-kvm launch. With the help of Daniel I 
narrowed it down to the vhost_net presence (default active when launched 
by libvirt) i.e. with vhost_net, boot process is *UNIFORMLY* 2x slower.


The problem is still reproducible on my systems but these are going to 
go to production soon and I am quite busy, I might not have many more 
days for testing left. Might be just next saturday and sunday for 
testing this problem, so if you can write here some of your suggestions 
by saturday that would be most appreciated.



I have performed some benchmarks now, which I hadn't performed in the 
old thread:


openssl speed -multi 2 rsa : (cpu benchmark) show no performance 
difference with or without vhost_net

disk benchmarks : show no performance difference with or without vhost_net
the disk benchmarks were: (both with cache=none and cache=writeback)
dd streaming read
dd streaming write
fio 4k random read in all cases of cache=none, cache=writeback with host 
cache dropped before test, cache=writeback with all fio data in host 
cache (measures context switch)

fio 4k random write

So I couldn't reproduce the problem with any benchmark that came to my mind.

But in the boot process this is very visible.
I'll continue the description below
before that, here are the System Specifications:
---
Host is with kernel 3.0.3 and Qemu-KVM 0.14.1, both vanilla and compiled 
by me.
Libvirt is the version in Ubuntu 11.04 Natty which is 0.8.8-1ubuntu6.5 . 
I didn't recompile this one


VM disks are LVs of LVM on MD raid array.
The problem shows identically on both cache=none and cache=writeback. 
Aio native.


Physical CPUs are: dual westmere 6-core (12 cores total, + hyperthreading)
2 vCPUs per VM.
All VMs are idle or off except the VM being tested.

Guests are:
- multiple Ubuntu 11.04 Natty 64bit with their 2.6.38-8-virtual kernel: 
very-minimal Ubuntu installs with deboostrap (not from the Ubuntu installer)
- one Fedora Core 6 32bit with a 32bit 2.6.38-8-virtual kernel + initrd 
both taken from Ubuntu Natty 32bit (so I could have virtio). Standard 
install (except kernel replaced afterwards).

Always static IP address in all guests
---

All types of guests show this problem, but it is more visible in the FC6 
guest because the boot process is MUCH longer than in the 
debootstrap-installed ubuntus.


Please note that most of boot process, at least from a certain point 
onwards, appears to the eye uniformly 2x or 3x slower under vhost_net, 
and by boot process I mean, roughly, copying by hand from some screenshots:



Loading default keymap
Setting hostname
Setting up LVM - no volume groups found
checking ilesystems... clean ...
remounting root filesystem in read-write mode
mounting local filesystems
enabling local filesystems quotas
enabling /etc/fstab swaps
INIT entering runlevel 3
entering non-interactive startup
Starting sysstat: calling the system activity data collector (sadc)
Starting background readahead

** starting from here it is everything, or almost everything, 
much slower


Checking for hardware changes
Bringing up loopback interface
Bringing up interface eth0
starting system logger
starting kernel logger
starting irqbalance
starting potmap
starting nfs statd
starting rpc idmapd
starting system message bus
mounting other filesystems
starting PC/SC smart card daemon (pcscd)
starint hidd ... can't open HIDP control socket : address familiy not 
supported by protocol (this is an error due to backporting a new ubuntu 
kernel to FC6)

starting autofs: loading autofs4
starting automount
starting acpi daemon
starting hpiod
starting hpssd
starting cups
starting sshd
starting ntpd
starting sendmail
starting sm-client
startingg console mouse services
starting crond
starting xfs
starting anacron
starting atd
starting youm-updatesd
starting Avahi daemon
starting HAL daemon


From the point I marked, onwards, most are services, i.e. daemons 
listening from sockets, so I have thought that maybe the binding to a 
socket could have been slower under vhost_net, but trying to put nc in 
listening with: nc -l 15000 is instantaneous, so I am not sure.


The shutdown of FC6 with basically the same services as above which tear 
down, is *also* much slower on vhost_net.


Thanks for any suggestions
R.

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list