I just ran into something I haven't seen mentioned before: a ubd running
in sync mode is much (and I mean /much/) slower when operating on files
than on a block device. I enabled sync mode for the first time on a
UML which is intended for production use and found it unusable slow (the
whole UML became totaly unresponsive for minutes when copying a few 100M of
data, and it's a 2.4GHz Xenon with SCSI RAID), so I switched it off again
(is there a way to override it to off BTW? like ubd0s=... a ubd0a=...
or something?). Now I found out that it's only that bad when my ubd is
writing to a normal file, when writing to a device it's still about 2 times
slower than async mode, but that's acceptable. And when I found out that
this also is true for loopback devices I got a bit confused, is this
a known effect? I don't really think it's obvious? Should I just add
20 loop-devices and access my CoW files over them?
What I mean:
$ linux ubd0s=cowfile,backingfile
is SLOWWW while:
# losetup /dev/loop0 cowfile
$ linux ubd0s=/dev/loop0,backingfile
gives usable speed, still slower than
$ linux ubd0=cowfile,backingfile
but not completely unusable as the first version. It has nothing to
do with using a CoW file, BTW, the difference is also there when using
a root filesystem directly compared to over /dev/loop0...
Is there a logical reason for that? Is anyone here using sync ubds on files
an gets a usable speed out of it? The performance it had on my machine
(and two others I tried) really is unacceptable and I can't imagine
anyone using that in production? (it was about 20 time slower than
async and the virtual machine was completely locked during heavy IO).
Oh, and speaking of performance: does anyone know if the Xenon's
Hyperthreading will help a machine intended to run lots of UMLs?
Thanks & (:ul8er, r@...
Are you using ext3 as the filesystem on the host? I have noticed that
when running UML on it (compared to ext2), performance is unacceppable.
Get latest updates about Open Source Projects, Conferences and News.