周末看了一篇 Virtualization of Linux servers,这篇论文测试了当前几个主要开源虚拟产品的性能,刚好配合前段时间看的几种不同虚拟技术的隔离性能。虚拟机的性能和隔离性都是虚拟技术非常重要的性能指标,大面积测试和比较不同的产品需要消耗大量的时间和精力,这篇文章在前人的基础上较全面测试了 Linux 下不同虚拟产品的性能,涉及到的有 KQEMU、KVM、Linux-VServer、OpenVZ、VirtualBox、Xen.
整个测试在一台 IBM/Lenovo Desktop PC 上进行,这台 PC 配有 Intel Core 2 Duo 6300 处理器,4GB 内存和 80GB SATA 硬盘。服务器(host)操作系统是 Ubuntu 7.10,内核是 2.6.22-14,虚拟机(guest)操作系统是 Ubuntu 6.10. 网络部分的测试则通过另外一台 PC 来进行。使用的测试软件和参数如下:
Kernel Build
$ make defconfig
$ date +%s.%N && make && date +%s.%N
$ make cleanDbench
$ /usr/local/bin/dbench -t 300 -D /var/tmp 100Netperf
$ netserver # server side
$ netperf -H # client sideRsync
Experiment 1:
$ date +%s.%N && rsync -av ::kernel /var/tmp && date +%s.%N # client side
# where ’kernel’ is the linux-2.6.22.14 file tree (294M)
$ rm -fr /var/tmp/*
Experiment 2:
$ date +%s.%N && rsync -av ::iso /var/tmp && date +%s.%N # client side
# where ’iso’ is ubuntu-6.06.1-server-i386.iso (433M)
$ rm -fr /var/tmp/*Dd
Experiment 1:
$ dd if=/opt/iso/ubuntu-6.06.1-server-i386.iso of=/var/tmp/out.iso
$ rm -fr /var/tmp/*
Experiment 2:
$ dd if=/dev/zero of=/dev/null count=117187560 # 117187560 = 60GBzip2
$ cp /opt/ubuntu-6.06.1-server-i386.iso .
$ date +%s.%N && bzip2 -9 ubuntu-6.06.1-server-i386.iso && date +%s.%N
$ rm ubuntu-6.06.1-server-i386.iso.bz2SysBench
$ mysql> create database sbtest;
$ sysbench –test=oltp –mysql-user=root –mysql-host=localhost –debug=off prepare
$ sysbench –test=oltp –mysql-user=root –mysql-host=localhost –debug=off run
总的来说,Xen 除了在 dbench 文件系统测试中有点落后外,在其余所有的测试中都表现不俗,尤其是在最后的 scale 测试中表现惊艳。