Some benchmark figures for Xen paravirtualized guests
These are not really meaningful ... but you would like to see them anyway, right ?
Test were made on the
XenTestEnvironment .
iozone
Two
iozone tests were run in
parallel on two guest systems running on top
of the same hypervisor: the hosting machine has only one disk ... so both guests were
writing through Xen Virtual Block Device to it simulanously
SLC3:
[root@lxxen0-u0 root]# iozone -M -c -e -w -i0 -r256k -s1g -t10 -F /tmp/d{1,2,3,4,5,6,7,8,9,0}
Iozone: Performance Test of File I/O
Version $Revision: 1.1 $
Compiled for 32 bit mode.
Build: linux
Run began: Thu Nov 23 18:25:53 2006
Machine = Linux lxxen0-u0 2.4.21-47.0.1.EL.cernxenU #1 SMP Wed Nov 22 08:48:09 Include close in write timing
Include close in write timing
Include fsync in write timing
Setting no_unlink
Record Size 256 KB
File size set to 1048576 KB
Command line used: iozone -M -c -e -w -i0 -r256k -s1g -t10 -F /tmp/d1 /tmp/d2 /tmp/d3 /tmp/d4 /tmp/d5 /tmp/d6 /tmp/d7 /tmp/d8 /tmp/d9 /tmp/d0
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
Throughput test with 10 processes
Each process writes a 1048576 Kbyte file in 256 Kbyte records
Children see throughput for 10 initial writers = 14077.26 KB/sec
Parent sees throughput for 10 initial writers = 11850.11 KB/sec
Min throughput per process = 1147.11 KB/sec
Max throughput per process = 1650.14 KB/sec
Avg throughput per process = 1407.73 KB/sec
Min xfer = 728832.00 KB
Children see throughput for 10 rewriters = 4563.71 KB/sec
Parent sees throughput for 10 rewriters = 4539.54 KB/sec
Min throughput per process = 425.50 KB/sec
Max throughput per process = 556.33 KB/sec
Avg throughput per process = 456.37 KB/sec
Min xfer = 838144.00 KB
SLC4:
[root@lxxen0-u1 /]# iozone -M -c -e -w -i0 -r256k -s1g -t10 -F /tmp/d{1,2,3,4,5,6,7,8,9,0}
Iozone: Performance Test of File I/O
Version $Revision: 1.1 $
Compiled for 32 bit mode.
Build: linux
Run began: Thu Nov 23 18:25:41 2006
Machine = Linux lxxen0-u1 2.6.9-42.0.3.EL.cernxenU #1 SMP Tue Nov 21 10:54:28 Include close in write timing
Include close in write timing
Include fsync in write timing
Setting no_unlink
Record Size 256 KB
File size set to 1048576 KB
Command line used: iozone -M -c -e -w -i0 -r256k -s1g -t10 -F /tmp/d1 /tmp/d2 /tmp/d3 /tmp/d4 /tmp/d5 /tmp/d6 /tmp/d7 /tmp/d8 /tmp/d9 /tmp/d0
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
Throughput test with 10 processes
Each process writes a 1048576 Kbyte file in 256 Kbyte records
Children see throughput for 10 initial writers = 13562.90 KB/sec
Parent sees throughput for 10 initial writers = 10304.75 KB/sec
Min throughput per process = 903.68 KB/sec
Max throughput per process = 1857.85 KB/sec
Avg throughput per process = 1356.29 KB/sec
Min xfer = 510464.00 KB
Children see throughput for 10 rewriters = 4905.64 KB/sec
Parent sees throughput for 10 rewriters = 4902.31 KB/sec
Min throughput per process = 468.76 KB/sec
Max throughput per process = 505.73 KB/sec
Avg throughput per process = 490.56 KB/sec
Min xfer = 974848.00 KB
For comparison: same test run on the Xen host system gives figures below
(as you can see .. it is not THAT performant):
[root@lxxen0 root]# iozone -M -c -e -w -i0 -r256k -s1g -t10 -F /tmp/d{1,2,3,4,5,6,7,8,9,0}
Iozone: Performance Test of File I/O
Version $Revision: 1.1 $
Compiled for 32 bit mode.
Build: linux
Run began: Fri Nov 24 09:05:23 2006
Machine = Linux lxxen0 2.6.16.29-xen_3.0.3.0 #1 SMP Wed Nov 22 10:20:52 CET 20 Include close in write timing
Include close in write timing
Include fsync in write timing
Setting no_unlink
Record Size 256 KB
File size set to 1048576 KB
Command line used: iozone -M -c -e -w -i0 -r256k -s1g -t10 -F /tmp/d1 /tmp/d2 /tmp/d3 /tmp/d4 /tmp/d5 /tmp/d6 /tmp/d7 /tmp/d8 /tmp/d9/tmp/d0
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
Throughput test with 10 processes
Each process writes a 1048576 Kbyte file in 256 Kbyte records
Children see throughput for 10 initial writers = 42421.14 KB/sec
Parent sees throughput for 10 initial writers = 35150.62 KB/sec
Min throughput per process = 3105.44 KB/sec
Max throughput per process = 5259.87 KB/sec
Avg throughput per process = 4242.11 KB/sec
Min xfer = 628736.00 KB
Children see throughput for 10 rewriters = 39137.04 KB/sec
Parent sees throughput for 10 rewriters = 38896.64 KB/sec
Min throughput per process = 3495.18 KB/sec
Max throughput per process = 4104.54 KB/sec
Avg throughput per process = 3913.70 KB/sec
Min xfer = 901120.00 KB