Hi Folks,
I've been doing some experimenting to see how far I can push some old
hardware into a virtualized environment - partially to see how much use
I can get out of the hardware, and partially to learn more about the
behavior of, and interactions between, software RAID, LVM, DRBD, and Xen.
Basic configuration:
- two machines, 4 disk drives each, two 1G ethernet ports (1 each to the
outside world, 1 each as a cross-connect)
- each machine runs Xen 3 on top of Debian Lenny (the basic install)
- very basic Dom0s - just running the hypervisor and i/o (including disk
management)
---- software RAID6 (md)
---- LVM
---- DRBD
---- heartbeat to provide some failure migration
- dom0, on each machine, runs directly on md RAID volumes (RAID1 for
boot, RAID6 for root and swap)
- each Xen VM uses 2 DRBD volumes - one for root, one for swap
- one of the VMs has a third volume, used for backup copies of files
One domU, on one machine, runs a medium volume mail/list server. This
used to run non-virtualized on one of the machines, and I moved it into
a domU. Before virtualization, everything just hummed along (98% idle
time as reported by top). Virtualized, the machine is mostly idle, but
now top reports a lot of i/o wait time, usually in the 20-25% range).
As I've started experimenting with adding additional domUs, in various
configurations, I've found that my mail server can get into a state
where it's spending almost all of its cycles in an i/o wait state (95%
and higher as reported by top). This is particularly noticeable when I
run a backup job (essentially a large tar job that reads from the root
volume and writes to the backup volume). The domU grinds to halt.
So I've been trying to track down the bottlenecks.
At first, I thought this was probably a function of pushing my disk
stack beyond reasonable limits - what with multiple domUs on top of DRBD
volumes, on top of LVM volumes, on top of software RAID6 (md). I
figured I was seeing a lot of disk churning.
But... after running some disk benchmarks, what I'm seeing is something
else:
- I took one machine, turned off all the domUs, and turned off DRBD
- I ran a disk benchmark (bonnie++) on dom0, which reported 50MB/sec to
90MB/sec of throughput depending on the test (not exactly sure what this
means, but it's a baseline)
- I then brought up DRBD and various combinations of domUs, and ran the
benchmark in various places
- the most interesting result, running in the same domU as the mail
server: 34M-60M depending on the test (not much degredation from running
directly on the RAID volume
- but.... while running, the benchmark, the baseline i/o wait percentage
jumps from 25% to the 70-90% range
So... the question becomes, if it's not disk churning, what's causing
all those i/o wait cycles? I'm starting to think it might involve
buffering or other interactions in the hypervisor.
Any thoughts or suggestions regarding diagnostics and/or tuning? (Other
than "throw hardware at it" of course :-).
Thanks very much,
Miles Fidelman
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|