Hi.
I have performance problems with IBM DB2 10.5 server on KVM guest:
[db2inst1@wc8ws-auth ~]$ time db2 create db test
DB20000I The CREATE DATABASE command completed successfully.
real 7m46.155s
user 0m0.022s
sys 0m0.027s
It takes 30 seconds to create a database on an image mounted with -oloop.
I think it's because db2 uses O_DIRECT to ensure consistency. I also think that
O_DIRECT is not propagated to host with default cache modes in VM settings. The real
problem is: when guest writes data in small blocks, host CPU becomes a bottleneck.
I hava a relatively old 24-core Xeon. Host `top` shows 130% CPU usage by qemu-kvm, when I
run the following command:
[root@wc8ws-auth ~]# </dev/zero timeout -sINT 30s dd iflag=fullblock oflag=direct
conv=notrunc of=./bigfile bs=8192
140384+0 records in
140384+0 records out
1150025728 bytes (1.2 GB) copied, 29.9992 s, 38.3 MB/s
I tried all buses, cache modes and IO modes; "Cache mode=none" is slower, others
are almost equal.
I moved from image file to LVM. This raised the speed from 16M to 38M.
I also tried VirtualBox, but it's neither faster, nor slower, and it eats CPU too.
--
--------------------------------------------------------------------------------
Kind regards,
Ilya Basin
software engineer
Reksoft
Skype: basin_ilya
phone +7(812)324-24-40*553