Virtualizációs technológiák Linux alatt (teljesítményteszt) Ebben a dokumentációban a virtualizációs technológiák sebességét, teljesítményét hasonlítom össze RedHat-alapú Linux disztribúciókkal. A teszteléshez Fedora 15 Linux x86_64 operációs rendszer használtam (host operációs rendszer). A guest operációs rendszerek szintén x86_64 architektúrájúak. 1. Hardver konfiguráció: Az alábbi hardver konfigurációval végeztem a tesztet: • Gigabyte GA-MA69VM-S2 alaplap • AMD Athlon 64 X2 (2 x core) CPU • 4GB DDR2 RAM • 1TB SATA2 HDD • Gigabyte NVidia GeForce 210 VGA GDDR3 128MB 2. Virtualizációs tesztkörnyezet: Host OS: Fedora 15 x86_64 Virtualizációs technológia
Verzió
Guest OS #1
Guest OS #2
KVM (qemu)
0.14
Fedora 15 x86_64
CentOS 5.6 x86_64
VirtualBox
4.0
Fedora 15 x86_64
CentOS 5.6 x86_64
VMWare (Player)
3.1.4
Fedora 15 x86_64
CentOS 5.6 x86_64
3. Tesztparaméterek: A teszteléshez egy bash shell-szkriptet használtam. Az egyes guest-ek futásakor másik guest nem futott. Telepített csomagok: Fedora 15: Grafikus Asztal, CentOS: Desktop GNOME. A Guest OS-eknek egyenlő feltételeket biztosítottam. A Guest OS és egyéb teszt paraméterek: • • • • • • •
memória: 1GB architektúra: x86_64 video megjelenítés: VirtualBox:128MB memória, KVM: SPICE protokoll small file: sample.avi → 359.890KB large file: sample2.avi → 2.108MB video file: sample.avi teszt műveletek, végrehajtott parancsok:
copy small file: copy large file: copy small file ssh: copy small file samba: copy large file ssh: copy large file samba: compress into tar.gz: convert video file:
kisebb méretű fájl másolása helyben (lokálisan) nagyobb méretű fájl másolása helyben (lokálisan) kisebb méretű fájl másolása SSH-n keresztül (guest → host) kisebb méretű fájl másolása Samba-n keresztül (guest → host) nagyobb méretű fájl másolása SSH-n keresztül (guest → host) nagyobb méretű fájl másolása Samba-n keresztül (guest → host) video fájl tömörítése tar.gz-be lokálisan video konvertálása lokálisan
4. Eredmények: Műveletek átlagos ideje másodpercben (s), az alacsonyabb érték a kedvezőbb
Virtualizáció
KVM
VirtualBox
VMWare
Fedora 15 guest
CentOS 5.6 guest
Fedora 15 host (natív)
copy small file
copy small file
* copy small file:
1,5s
copy large file
copy large file
* copy large file:
49,0s
copy small file ssh
copy small file ssh
* copy small file ssh:
15,4s
copy small file samba
copy small file samba
copy large file ssh
copy large file ssh
copy large file samba
copy large file samba
* copy large file samba:
48,0s
compress into tar.gz
compress into tar.gz
* compress into tar.gz:
29,0s
convert video file
convert video file
3,7
1,4
68,0
123,0
36,8
34,6
8,8
7,2
234,0
239,4
59,0
76,0
37,6
38,0
1764,0
1802,3
5,0
2,6
76,5
61,8
43,0
36,8
151,8
40,8
286,2
239,6
1433,0
1239,0
55,8
39,2
1827,6
1821,0
5,1
3,0
98,6
116,6
33,4
30,2
87,8
40,6
222,0
215,6
1026,5
890,0
58,0
37,2
1757,0
1819,5
* copy small file samba : * copy large file ssh:
* convert video file:
3,6s
121,0s
1427,0s
* referencia érték: host OS-en (lokálisan)
A teszt során jelentősebb sebesség különbséget a Samba-n keresztüli adatátvitelnél tapasztaltam. KVM alatt volt a legalacsonyabb az átviteli idő (nagyobb átviteli sebesség) a többi virtualizációs technológiához képest.
KVM - műveleti idők (sec) 17 64 18 02 ,3
kisebb érték a kedvezőbb 2000 1800 1600 1400 Fedora KVM CentOS KVM
1200 1000 800
28
37 ,6
76
59
23 4 23 9, 4 8, 8
7, 2
36 ,8 34 ,6
68
3, 7
200
1, 4
400
12 3
600
0 cp large cp small
samba small samba large vlc convert ssh small ssh large compress tar.gz
Virtualbox - műveleti idők (sec)
14 33 12 39
cp large cp small
55 ,8 39 ,2
28 6, 2 23 9, 6
40 ,8
15 1, 8
43 36 ,8
76 ,5 61 ,8
2, 6
Fedora Vbox CentOS Vbox
5
2000 1800 1600 1400 1200 1000 800 600 400 200 0
18 27 , 18 6 21 ,2
kisebb érték a kedvezőbb
samba small samba large vlc convert ssh small ssh large compress tar.gz
VMWare - műveleti idők (sec) 17 57 18 19 ,5
kisebb érték a kedvezőbb 2000 1800 1600 10 26 ,5
1400
Fedora VMWare CentOS VMWare
89 0
1200 1000 800
58 37 ,2
22 2 21 5, 6
87 ,8 40 ,6
98 ,6 11 6, 6 3
200
5, 1
400
33 ,4 30 ,2
600
0 cp small
cp large samba small samba large vlc convert ssh small ssh large compress tar.gz
Virtualizásiós technológiák Linux alatt (teszt) műveleti idők (sec), kisebb érték a kedvezőbb 1764 1802,3 1827,6 1821,2 1757 1819,5
2000 1800
1239
1400
1427
1433
1600
1026,5
1200
Fedora natív Fedora KVM CentOS KVM Fedora Vbox CentOS Vbox Fedora VMWare CentOS VMWare
890
1000 800
29 37,6 28 55,8 39,2 58 37,2
48 59 76
121
151,8 40,8 87,8 40,6
3,6 8,8 7,2
15,4 36,8 34,6 43 36,8 33,4 30,2
49 68
1,5 3,7 1,4 5 2,6 5,1 3
200
123 76,5 61,8 98,6 116,6
400
234 239,4 286,2 239,6 222 215,6
600
0 cp small
cp large
ssh small
samba small
ssh large
samba large compress tar.gz vlc convert
A teszt szkript: #!/bin/bash # # -----------------------------------# Virtualization benchmark bash script # -----------------------------------# clear echo "-------------------------------------------" echo "Start Virtual Benchmark Test..." echo "-------------------------------------------" # Beginnig ======================================= START=$(date +%s) # Test logic here ==================================== # # # copy small file: #cp sample.avi /tmp/sample.avi # copy large file: #cp sample2.avi /tmp/sample2.avi # copy small file ssh: # sshfs hostos_machine:/root/ /mnt/ssh/ #cp sample.avi /mnt/ssh # copy small file samba: # mount -t cifs //hostos_machine/samba_share /mnt/samba -o username=mylogin,password=mypasswd #cp sample.avi /mnt/samba/ # copy large file ssh: # sshfs hostos_machine:/root/ /mnt/ssh/ #cp sample2.avi /mnt/ssh # copy large file samba: # mount -t cifs //hostos_machine/samba_share /mnt/samba -o username=mylogin,password=mypasswd #cp sample2.avi /mnt/samba/ # compress into tar.gz: #tar czf sample.tar.gz ./sample.avi # convert video file: #cvlc -vvv ./sample.avi –sout \ # '#transcode{vcodec=WMV2,vb=1024,ac=mp3,ab=128,width=640,height=480}:standard{access=file,dst=sample.wmv,mux=asf}' vlc://quit # # # Logic ends here ================================ # End ============================================ END=$(date +%s) # ================================================ # Running calculate ============================== DIFF=$(( $END - $START )) echo "" echo "" echo "-------------------------------------------" echo "Running time: $DIFF seconds" echo "-------------------------------------------" # END OF FILE ====================================
2011. június Makó Gábor
[email protected]