[Users] How to make oVirt I/O write faster than Virtualbox and others?

Adrian Gibanel adrian.gibanel at btactic.com
Sat Mar 2 10:47:21 EST 2013


  Every benchmark out there features KVM as the best virtualisation technology. Even in the I/O write category. My results with oVirt are deceiving. So I'm going to explain my test machine, setup and ask your for advice to find out what's wrong. Any more data you need please ask for it. I like oVirt mostly because of its datacentre-aware web manager. But if it gets unusable I would have to take a look at other systems. 

Hardware machine for the host OS
---------------------------------
* Sandy Bridge E
* CPU : Intel Xeon E5-1620 (10 MB Intel Smart Cache)
* Cores / Threads : 4 / 8
* Frecuency : 3.6GHz / 3.8GHz Turbo Boost
* RAM : 64 GB DDR3 ECC
* Hard Disk : 2x 2TB SATA3
* VT technology: Intel VT

Common OS Setup for the host OS
---------------------------------
* 2 hard disks RAIDSoft

Guest OS common setup
---------------------
* 1 socket x 1 core x 1 thread
* 2 GB RAM
* 300 GB Preallocated hard disk
* Virtualmin installed (Just an excuse to have a mysql server)
* Ubuntu 12.04 64bit

Write I/O test
--------------
The write I/O test is not standard one but a custom one. One of our needs is to create new Mysql INNODB tables. These tables have to be created in less than php maximum execution time so that some web installations don't timeout when creating their databases.
DISCLAIMER: If you want to evaluate oVirt don't trust on these times, please do your own tests.

So the test creates table0 with two ints columns which are then filled with 100 insert intos. Repeat that for 99 more tables. Finally drop (delete) all the create tables.

What I run is:

mysql -u root -p -e "drop database test_create_tables"
mysql -u root -p -e "create database test_create_tables"
time mysql -u root -p test_create_tables < test_mysql.sql

I attach test_mysql.sql gzipped just in case anyone is curious.

Note that all the Proxmox tests are: Debian Squeeze + Proxmox (KVM). It was never used openvz as a virtualisation technology.

Test A - Debian Squeeze + Proxmox (KVM)
-----------------
Description: This is proxmox booting a machine as KVM (not as openvz). As said before only 1 socket and 1 core.

real    0m9.453s
user    0m0.104s
sys     0m0.076s

Test B - Proxmox (KVM, aio=threads)
----------------------------
Description: Proxmox again. Qemu was run at hand by changing aio parametre to be aio=threads (as oVirt uses) instead of aio=native.

real    0m9.510s
user    0m0.080s
sys     0m0.096s

Test C - Proxmox (linux-image-virtual kernel installed, aio=threads)
--------
Description: If we install linux-image-virtual kernel inside the guest machine times are improved a bit.

real    0m8.691s
user    0m0.104s
sys     0m0.080s

Test D - Proxmox (ubuntu,  linux-virtual, aio=threads y: -cpu kvm64,+lahf_lm,+ssse3,-cx16)
-----------

real    0m8.790s
user    0m0.084s
sys     0m0.096s

Test E - Proxmox (ubuntu,  linux-virtual, aio=threads y: -cpu kvm64,+lahf_lm,+ssse3,-cx16 -M pc-01.4)
---------
real    0m8.720s
user    0m0.100s
sys     0m0.080s

Test F - Proxmox (ubuntu,  linux-virtual, aio=threads y: -cpu kvm64,+lahf_lm,+ssse3,-cx16 -M pc-01.4 -rtc base=2013-02-22T02:26:29,driftfix=slew)
--------

real    0m8.790s
user    0m0.096s
sys     0m0.084s

Test G - Virtualbox
------
Description: Ubuntu 12.04 64bit as a host. This is Virtualbox 4.2 with the extension pack installed. Notice that neither I installed the guest additions tools in the guest machine nor the linux-image-virtual kernel.

real    0m36.176s
user    0m0.612s
sys     0m0.468s

Test H - Fedora 17 64bit - oVirt 3.1
-------
Description: This is Fedora 17 64bit oVirt 3.1 being installed in the Host. Web manager is installed in another machine. SELinux is in Permissive mode. Virtual machine is run at the same virtual machine where storage is. The datacenter is setup as "Localhost on host" type. Linux-image-virtual kernel installed inside the guest machine.

real    0m52.246s
user    0m0.200s
sys     0m0.128s

Test I - Fedora - oVirt 3.1 - vdsmd stopped.
-------
Description: This is Fedora 17 64bit oVirt 3.1 being installed in the Host. Web manager is installed in another machine. SELinux is in Permissive mode. Virtual machine is run at the same virtual machine where storage is. The datacenter is setup as "Localhost on host" type. Linux-image-virtual kernel installed inside the guest machine. vdsmd daemon was stopped at the host was stopped just in case it was the I/O decrease reason.

real    0m45.932s
user    0m0.216s
sys     0m0.100s

Some bits about the test:

* If you're asking, yes, I've repeated the test several times and the times I give here are representative.
The password was inserted manually when running mysql commands but that's only 1 to 2 seconds less which doesn't explain the huge differences between the tests.
* I also tried Fedora 64bit and Centos 64bit as guest systems and the results were worse.
* I also tried other less powerful machines which work ok with Virtualbox but have poor I/O write results with oVirt.
* The B-F Proxmox tests were trying to reproduce the oVirt parametres which might be wrong but nothing triggered the 52 secs of Fedora test so they were kind of useless.
* At H and I tests (the Fedora ones) if you check top command when the test is being run you get often from 80% to 90% wa(iting).

Some random questions:

* Is it a problem that sandbridge architecture is being detected as an Intel Conroe architecture?
* Is there any easy way to test aio=native in oVirt when running virtual machines just for testing it?
* Should I test oVirt 3.2? Is there any improvement in I/O writing?
* What about Fedora 18? Any improvements in I/O writing or, I don't know, the Virtio system?
* Any ovirt-node package for Debian/Ubuntu? The wiki seems like a draft (http://www.ovirt.org/Ovirt_build_on_debian/ubuntu).
* Any I/O write consuming package that I should remove from stock Fedora just before installing it from the web manager?

So... Any idea?

Thank you very much!

P.S.: Thanks to my workmate Sergi which found out the mysql test and was kind to test some of my setups.

-- 
-- 
Adrián Gibanel 
I.T. Manager 

+34 675 683 301 
www.btactic.com 



Ens podeu seguir a/Nos podeis seguir en: 

i 

Abans d´imprimir aquest missatge, pensa en el medi ambient. El medi ambient és cosa de tothom. / Antes de imprimir el mensaje piensa en el medio ambiente. El medio ambiente es cosa de todos. 

AVIS: 
El contingut d'aquest missatge i els seus annexos és confidencial. Si no en sou el destinatari, us fem saber que està prohibit utilitzar-lo, divulgar-lo i/o copiar-lo sense tenir l'autorització corresponent. Si heu rebut aquest missatge per error, us agrairem que ho feu saber immediatament al remitent i que procediu a destruir el missatge . 

AVISO: 
El contenido de este mensaje y de sus anexos es confidencial. Si no es el destinatario, les hacemos saber que está prohibido utilizarlo, divulgarlo y/o copiarlo sin tener la autorización correspondiente. Si han recibido este mensaje por error, les agradeceríamos que lo hagan saber inmediatamente al remitente y que procedan a destruir el mensaje . 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_mysql.sql.gz
Type: application/x-gzip
Size: 30920 bytes
Desc: not available
URL: <http://lists.ovirt.org/pipermail/users/attachments/20130302/8eecf48a/attachment-0001.gz>


More information about the Users mailing list