Proxmox als Lösung für LXE und KVM Virtualisierung bietet eine Vielzahl von Einstellungsmöglichkeiten. Darunter auch verschiedene Optionen für virtuelle Festplatten. In diesem Zusammenhang interressiert mich die Wahl des Bus (VirtIO bzw. SCSI) und des Formates der virtuellen Festplatte (raw, qcow2, vmdk), sowie deren Cache-Optionen (kein Cache, Direct sync, Write Through, Write back, Write back (unsicher) ). Weiterhin werde ich kurz die Vor- und Nachteile des Formates sowie deren Cache-Optionen aufzählen
Testhardware
Für den Test stand mir ein HP Elitebook 8460p mit folgender Ausstattung zur Verfügung:
- Intel i5 2520M 2Core CPU
- 16GB DDR3 RAM
- OS Disk = OSC Vertex 2 mit 120GB
- VM Disk = Intel 320 SSD mit 320GB
Debian Jessie kam als Betriebssystem auf dem Host zum Einsatz. Proxmox wurde in der aktuellen PVE-Version 4.4-12, mit Kernel 4.4.35-2-pve und KVM Qemu 2.7.0, nachinstalliert (non-subscription).
Jede virtuelle Maschine ist vom Typ KVM und ebenfalls mit Debian Jessie als geführte Intallation frisch installiert. Ext4 wurde als Dateisystem verwendet. Das Testgerät führt keine weiteren Dienste aus die den Test hätten beeinflussen können. Die SSD für die virtuellen Maschinene ist wie folgt eingebunden:
# ext4 noatime,nodiratime,errors=remount-ro 0 2
Diskformat RAW
Bei der Verwendung des RAW-Formates werden die Daten als Plain Binary Image abgelegt. Sie entsprechen denen der tatsächlichen der virtuellen Festplatte. Somit ist ein Image im RAW-Format immer so groß wie der gesamten Speicher für die virtuelle Festplatte konfiguriert wurde. Das Format ist sehr portabel und kann auch in anderen Systemen wie Virtualbox eingebunden werden. Es bestitzt im Gegensatz zu QCOW (2) keinen Overhead.
Diskformat QCOW2
QCOW2 präsentiert die 2. Generation das Dateiformates für Diskimages. Verwaltet wird es vom virtuellen Machine Monitor, QEMU. Das Copy-On-Write Format besitzt eine Vielzahl an speziellen Funktionen. Diese sind unter anderen:
- Multiple-Snapshotfunktion im laufenden Betrieb
- Diskgröße wächst mit steigender Anzahl an zu speichernden Daten
- Überprovisionierung möglich
- AES Verschlüsselung
- ZLIB Kompression
- kein direkter Mount wie bei RAW möglich
- leichter Overhead durch Zusatzfunktionen im Vergleich zu RAW
KVM Cache Optionen
KVM (Kernel-based Virtual Machine) bietet diverse Optionen zur Verwendung eines Caches für virtuelle Maschinen. Nachfolgend die Möglichkeiten und deren Bedeutet.
KVM Cache – none
Mit dieser Option ist der meiste Page Cache deaktiviert und der Write Cache für die Festplatte der VM aktiviert. Damit ist die Performance für Anwendungen in der VM gut, aber die Daten sind im Falle eines Powerfehlers nicht geschützt. Diese Option ist für temporäre Daten, bei denen ein Verlust nicht so schlimm ist, zu empfehlen.
KVM Cache – writethrough
MIt dieser Option ist der Cache des Hosts aktiviert, aber der Diskcache der VM deaktiviert. Dadurch werden die Daten direkt an den Host gesendet, der diese vor dem Schreiben zwischenspeichert. Dieser Mode sichert die Datenintegrität, wodurch die Read-Performance generell besser als die Write-Performance ist.
KVM Cache – writeback
Mit dieser Option ist sowohl der Host Cache als auch der Disk Write Cache der VM aktiviert. Damit sit die I/O Performance gut, aber die Daten sind nicht gegen einen Powerfehler gesichert, da sie erst in den „Zwischenspeicher“ geschrieben werden, bevor sie auf das Blockdevice abgespeichert werden.
KVM Cache – directsync
Mit dieser Optione werden die Schreiboperationen in der VM an den Host gesendet und erst wenn sie erfolgreich geschrieben wurden zurück gemeldet. Diese Option ist ähnlich der writehrough Option, jedoch ohne die Nutzung des Host Cache.
KVM Cache – unsafe
Mit dieser Option werden Cache-Transfer-Operationen komplett ignoriert. Sie ist ähnlich der writeback Option. Auch diese Option ist nur für temporäre oder nicht wichtige Daten geeignet, wie z.B. Gastinstallationen.
Testablauf
Die virtuellen Maschinen sind alle grundlegend wie folgt konfiguriert:
- Bustyp = SCSI (VirtIO SCSI)
- 32GB HDD
- 1 CPU 1 Core KVM Standard
- 1024 GB RAM
Je Test wurde eine 32GB große virtuelle Maschine mit Debian und ext4 erstellt. Als Kernel kam der dato aktuelle von Jessie in Version 3.16.0-4-amd64 zum Einsatz. Es gab keine besonderen Tuningmaßnahmen (Dateisystem, Kernel etc.). Insgesamt wurden 10 virtuelle Testmaschinen erstellt auf denen jeweils 9 Performancetests ausgeführt wurden.
- raw (Bus: VirtIO SCSI und VirtIO)
- Standardeinstellung (kein Cache)
- direct sync
- write through
- write back
- write back (unsicher)
- qcow2 (Bus: VirtIO SCSI und VirtIO)
- Standardeinstellung (kein Cache)
- direct sync
- write through
- write back
- write back (unsicher)
Nach jedem Einzeltest wurde die fio Testdatei gelöscht. Nach jedem Wechsel des Disktyp wurde die alte virtuelle Maschine gelöscht und die neue mit Debian neuinstalliert. Die Test wurden mit dem Tool fio und ioping ausgeführt. Aus zeitlichen Gründen wurde jeder Test nur einmal durchlaufen.
FIO und IOPing Tests
1. fio Random Write Test der IOP/s – viele kleine Dateien
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=256 –size=4G —readwrite=randwrite
1.1 fio Random write Test der IOP/s - viele kleine Dateien (SCSI)
IOPS | BW in KB/s | CPU User in % | CPU System in % | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ | 33580 | 134321 | 4,78 | 2798 | 31226 |
Host Intel | 15994 | 63977 | 2,65 | 1581 | 65560 |
RAW- no Cache | 15539 | 62158 | 2,69 | 1798 | 67478 |
RAW - direct sync | 4502 | 18009 | 0,80 | 440 | 232906 |
RAW - write through | 1998 | 7996 | 0,38 | 213 | 524563 |
RAW - write back | 30753 | 123015 | 7,53 | 6186 | 34096 |
RAW - write back unsicher | 33711 | 134848 | 7,39 | 6188 | 31104 |
QCOW2 - no cache | 15058 | 60235 | 2,53 | 1670 | 69632 |
QCOW2 - direct sync | 4595 | 18383 | 0,82 | 453 | 228161 |
QCOW2 - write through | 1990 | 7960 | 0,41 | 216 | 526903 |
QCOW2 - write back | 33947 | 135791 | 7,59 | 6218 | 30888 |
QCOW2 - write back unsicher | 37917 | 151671 | 7,59 | 6145 | 27654 |
1.2 fio Random write Test der IOP/s - viele kleine Dateien (VIRTIO)
IOPS | BW in KB/s | CPU User in % | CPU System in % | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ | 33580 | 134321 | 4,78 | 27,98 | 31226 |
Host Intel | 15994 | 63977 | 2,65 | 15,81 | 65560 |
RAW- no Cache | 25264 | 101058 | 5,28 | 14,55 | 41504 |
RAW - direct sync | 7671 | 30686 | 1,02 | 6,17 | 136685 |
RAW - write through | 8372 | 33490 | 2,13 | 11,97 | 125242 |
RAW - write back | 40666 | 162664 | 9,25 | 59,74 | 25785 |
RAW - write back unsicher | 44835 | 179343 | 9,25 | 61,01 | 23387 |
QCOW2 - no cache | 13963 | 55853 | 3,03 | 15,23 | 75096 |
QCOW2 - direct sync | 7389 | 29560 | 127 | 6,09 | 141893 |
QCOW2 - write through | 8330 | 33320 | 2,06 | 10,79 | 125878 |
QCOW2 - write back | 49402 | 197611 | 9,91 | 59,93 | 21225 |
QCOW2 - write back unsicher | 48985 | 195941 | 9,90 | 60,21 | 21406 |
2. fio Random Read Test der IOP/s – viele kleine Dateien
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=256 –size=4G —readwrite=randread
2.1 fio Random Read Test der IOP/s - viele kleine Dateien (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 27448 | 109796 | 4,52 | 13,37 | 38201 |
Host Intel SSD | 40563 | 162255 | 5,94 | 15,88 | 25850 |
RAW - no Cache | 40498 | 161992 | 4,79 | 19,25 | 25892 |
RAW - direct sync | 40305 | 161220 | 5,20 | 18,57 | 26016 |
RAW - write through | 74727 | 298910 | 15,02 | 84,19 | 14032 |
RAW - write back | 86673 | 346694 | 14,15 | 85,15 | 12098 |
RAW - write back unsicher | 86623 | 346494 | 14,31 | 84,53 | 12105 |
QCOW2 - no cache | 40343 | 161375 | 4,43 | 15,84 | 25991 |
QCOW2 - direct sync | 40323 | 161295 | 4,49 | 16,28 | 26004 |
QCOW2 - write through | 91835 | 367341 | 14,86 | 84,16 | 11418 |
QCOW2 - write back | 84822 | 339290 | 14,40 | 84,85 | 12362 |
QCOW2 - write back unsicher | 87879 | 351517 | 15,96 | 82,81 | 11932 |
2.2 fio Random Read Test der IOP/s - viele kleine Dateien (VIRTIO)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 27448 | 109796 | 4,52 | 13,37 | 38201 |
Host Intel SSD | 40563 | 162255 | 5,94 | 15,88 | 25850 |
RAW - no Cache | 4019 | 160763 | 5,04 | 14,67 | 26090 |
RAW - direct sync | 40084 | 160339 | 4,27 | 13,09 | 26159 |
RAW - write through | 145473 | 581896 | 28,47 | 70,99 | 7208 |
RAW - write back | 144951 | 579804 | 29,31 | 70,12 | 7234 |
RAW - write back unsicher | 141603 | 566415 | 28,47 | 70,77 | 7405 |
QCOW2 - no cache | 39403 | 157615 | 5,91 | 14,25 | 26611 |
QCOW2 - direct sync | 40100 | 160400 | 5,05 | 14,66 | 26149 |
QCOW2 - write through | 153345 | 613382 | 31,59 | 67,81 | 6838 |
QCOW2 - write back | 157137 | 628548 | 28,06 | 71,28 | 6673 |
QCOW2 - write back unsicher | 153390 | 613561 | 30,96 | 68,24 | 6836 |
3. fio Sequential Write Test der IOP/s – eine große Datei
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=256 –size=4G —readwrite=write
3.1 fio Sequential write Test der IOP/s - eine große Datei (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 34489 | 137957 | 4,13 | 16,37 | 30403 |
Host Intel SSD | 35737 | 142950 | 7,58 | 28,49 | 29341 |
RAW - no Cache | 35304 | 141218 | 3,91 | 23,39 | 29701 |
RAW - direct sync | 7176 | 28706 | 1,19 | 4,73 | 146110 |
RAW - write through | 3787 | 15149 | 1,07 | 3,41 | 276865 |
RAW - write back | 44440 | 177762 | 6,82 | 56,88 | 23595 |
RAW - write back unsicher | 45181 | 180727 | 7,05 | 57,88 | 23208 |
QCOW2 - no cache | 34078 | 136316 | 4,28 | 22,18 | 30769 |
QCOW2 - direct sync | 7531 | 30126 | 1,25 | 4,83 | 139225 |
QCOW2 - write through | 11135 | 44541 | 1,55 | 5,69 | 94168 |
QCOW2 - write back | 53853 | 215413 | 6,66 | 46,25 | 19471 |
QCOW2 - write back unsicher | 56287 | 225149 | 7,75 | 48,14 | 18629 |
3.2 fio Sequential write Test der IOP/s - eine große Datei (VIRTIO)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 34489 | 137957 | 4,13 | 16,37 | 30403 |
Host Intel SSD | 35737 | 142950 | 7,58 | 28,49 | 29341 |
RAW - no Cache | 40232 | 160929 | 7,51 | 33,66 | 26063 |
RAW - direct sync | 26012 | 104049 | 3,24 | 13,47 | 40311 |
RAW - write through | 25694 | 102776 | 4,47 | 20,95 | 40810 |
RAW - write back | 58250 | 233004 | 9,29 | 48,09 | 18001 |
RAW - write back unsicher | 61038 | 244153 | 9,59 | 55,21 | 17179 |
QCOW2 - no cache | 32765 | 131064 | 5,56 | 22,79 | 32002 |
QCOW2 - direct sync | 25277 | 101109 | 3,35 | 12,86 | 41483 |
QCOW2 - write through | 159552 | 638208 | 29,10 | 70,25 | 6572 |
QCOW2 - write back | 146674 | 586698 | 28,37 | 71,06 | 7149 |
QCOW2 - write back unsicher | 67095 | 268384 | 9,50 | 52,04 | 15628 |
4. fio Sequential Read Test der IOP/s – eine große Datei
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=256 –size=4G —readwrite=read
4.1 fio Sequential Read Test der IOP/s - eine große Datei (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 111621 | 446488 | 11,88 | 35,39 | 9394 |
Host Intel SSD | 66106 | 264425 | 11,90 | 35,91 | 15862 |
RAW - no cache | 66248 | 264993 | 6,65 | 27,14 | 15828 |
RAW - direct sync | 66168 | 264675 | 6,01 | 27,09 | 15847 |
RAW - write through | 89844 | 359378 | 13,47 | 85,59 | 11671 |
RAW - write back | 88368 | 353472 | 13,42 | 85,83 | 11866 |
RAW - write back unsicher | 85843 | 343373 | 12,84 | 86,20 | 12215 |
QCOW2 - no cache | 66097 | 264391 | 7,49 | 28,59 | 15864 |
QCOW2 - direct sync | 66256 | 265026 | 6,93 | 26,84 | 15826 |
QCOW2 - write through | 83048 | 332196 | 12,96 | 86,18 | 12626 |
QCOW2 - write back | 84760 | 339043 | 14,75 | 84,46 | 12371 |
QCOW2 - write back unsicher | 88862 | 355449 | 12,58 | 86,18 | 11800 |
4.2 fio Sequential Read Test der IOP/s - eine große Datei (VIRTIO)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 111621 | 446488 | 11,88 | 35,39 | 9394 |
Host Intel SSD | 66106 | 264425 | 11,90 | 35,91 | 15862 |
RAW - no cache | 53457 | 253831 | 7,70 | 21,72 | 16524 |
RAW - direct sync | 63580 | 254324 | 6,40 | 21,34 | 16492 |
RAW - write through | 1649 | 675738 | 26,23 | 73,22 | 6207 |
RAW - write back | 157019 | 628078 | 23,84 | 75,60 | 6678 |
RAW - write back unsicher | 164430 | 65772 | 23,02 | 76,35 | 6377 |
QCOW2 - no cache | 63496 | 253985 | 6,59 | 23,25 | 16514 |
QCOW2 - direct sync | 63538 | 254154 | 7,01 | 21,96 | 16503 |
QCOW2 - write through | 230001 | 920005 | 21,85 | 77,67 | 4559 |
QCOW2 - write back | 126869 | 507478 | 24,10 | 75,41 | 8265 |
QCOW2 - write back unsicher | 147251 | 589005 | 22,64 | 76,80 | 7121 |
5. fio Random Write Test des Throughput – viele kleine Dateien
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4M –iodepth=256 –size=10G —readwrite=randwrite
5.1 fio Random Write Test des Throughput - viele kleine Dateien (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 33 | 135749 | 0,70 | 0,46 | 77244 |
Host Intel SSD | 50 | 207331 | 1,05 | 0,74 | 50575 |
RAW - no cache | 14 | 57704 | 0,60 | 4,57 | 181715 |
RAW - direct sync | 14 | 58715 | 0,56 | 4,37 | 178587 |
RAW - write through | 25 | 103675 | 1,11 | 5,55 | 101141 |
RAW - write back | 52 | 215229 | 1,39 | 14,35 | 48719 |
RAW - write back unsicher | 59 | 244423 | 1,80 | 16,02 | 42900 |
QCOW2 - no cache | 14 | 57649 | 0,57 | 4,27 | 181890 |
QCOW2 - direct sync | 14 | 61270 | 0,56 | 3,81 | 171141 |
QCOW2 - write through | 18 | 74852 | 0,70 | 3,53 | 140086 |
QCOW2 - write back | 43 | 179890 | 1,22 | 11,42 | 58290 |
QCOW2 - write back unsicher | 53 | 220127 | 1,49 | 14,69 | 47635 |
5.2 fio Random Write Test des Throughput - viele kleine Dateien (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 33 | 135749 | 0,70 | 0,46 | 77244 |
Host Intel SSD | 50 | 207331 | 1,05 | 0,74 | 50575 |
RAW - no cache | 12 | 50113 | 0,60 | 5,81 | 209243 |
RAW - direct sync | 15 | 64786 | 0,66 | 5,58 | 161852 |
RAW - write through | 23 | 96615 | 0,95 | 7,13 | 108531 |
RAW - write back | 59 | 241702 | 1,68 | 20,14 | 43383 |
RAW - write back unsicher | 48 | 200320 | 1,87 | 14,99 | 52345 |
QCOW2 - no cache | 11 | 46541 | 0,50 | 3,90 | 225301 |
QCOW2 - direct sync | 9 | 39968 | 0,44 | 4,13 | 262357 |
QCOW2 - write through | 12 | 52914 | 0,52 | 4,19 | 198165 |
QCOW2 - write back | 39 | 162994 | 1,36 | 13,17 | 64332 |
QCOW2 - write back unsicher | 36 | 148677 | 1,24 | 10,55 | 70527 |
6. fio Random Read Test des Throughput
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4M –iodepth=256 –size=10G —readwrite=randread
6.1 fio Random Read Test des Throughput (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 117 | 482636 | 0,00 | 2,91 | 21726 |
Host Intel SSD | 66 | 271462 | 0,03 | 1,64 | 38627 |
RAW - no cache | 11 | 48295 | 0,01 | 4,58 | 217117 |
RAW - directsync | 11 | 48472 | 0,02 | 4,41 | 216327 |
RAW - write through | 32 | 131567 | 0,06 | 9,88 | 79699 |
RAW - write back | 78 | 319961 | 0,13 | 23,12 | 32772 |
RAW - write back unsicher | 59 | 245012 | 0,11 | 17,52 | 42797 |
QCOW2 - no cache | 10 | 41803 | 0,01 | 3,91 | 250836 |
QCOW2 - direct sync | 10 | 43434 | 0,01 | 3,77 | 241420 |
QCOW2 - write through | 32 | 131328 | 0,10 | 9,57 | 79844 |
QCOW2 - write back | 75 | 308686 | 0,09 | 21,97 | 33969 |
QCOW2 - write back unsicher | 64 | 263263 | 0,08 | 18,68 | 39830 |
6.2 fio Random Read Test des Throughput (VIRTIO)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 117 | 482636 | 0,00 | 2,91 | 21726 |
Host Intel SSD | 66 | 271462 | 0,03 | 1,64 | 38627 |
RAW - no cache | 12 | 49213 | 0,02 | 6,77 | 213071 |
RAW - directsync | 11 | 47592 | 0,01 | 6,15 | 220327 |
RAW - write through | 36 | 147545 | 0,08 | 12,50 | 71068 |
RAW - write back | 93 | 382692 | 0,09 | 31,39 | 27400 |
RAW - write back unsicher | 61 | 251717 | 0,12 | 20,16 | 41657 |
QCOW2 - no cache | 12 | 49266 | 0,02 | 7,16 | 212839 |
QCOW2 - direct sync | 12 | 49777 | 0,00 | 5,99 | 210655 |
QCOW2 - write through | 33 | 135770 | 0,07 | 11,48 | 77232 |
QCOW2 - write back | 77 | 318600 | 0,17 | 25,77 | 32912 |
QCOW2 - write back unsicher | 64 | 264738 | 0,09 | 21,64 | 39608 |
7. fio Sequential Write Test des Throughput – eine große Datei
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4M –iodepth=256 –size=10G —readwrite=write
7.1 fio Sequential Write Test des Throughput - eine große Datei (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 32 | 134739 | 0,70 | 0,44 | 77823 |
Host Intel SSD | 55 | 225481 | 0,99 | 0,94 | 46504 |
RAW - no cache | 14 | 59130 | 0,60 | 4,57 | 177334 |
RAW - direct sync | 13 | 56051 | 0,55 | 4,51 | 187074 |
RAW - write through | 30 | 125191 | 1,60 | 4,98 | 83758 |
RAW - write back | 41 | 171971 | 1,26 | 10,96 | 60974 |
RAW - write back unsicher | 44 | 182244 | 1,08 | 12,72 | 57537 |
QCOW2 - no cache | 13 | 57251 | 0,54 | 3,85 | 183153 |
QCOW2 - direct sync | 15 | 61859 | 0,54 | 3,61 | 16951 |
QCOW2 - write through | 24 | 99596 | 0,85 | 5,59 | 105283 |
QCOW2 - write back | 37 | 153262 | 1,16 | 9,38 | 68417 |
QCOW2 - write back unsicher | 42 | 172907 | 1,17 | 10,94 | 60644 |
7.2 fio Sequential Write Test des Throughput - eine große Datei (VIRTIO)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 32 | 134739 | 0,70 | 0,44 | 77823 |
Host Intel SSD | 55 | 225481 | 0,99 | 0,94 | 46504 |
RAW - no cache | 12 | 52501 | 0,69 | 6,49 | 199724 |
RAW - direct sync | 14 | 58273 | 0,65 | 5,92 | 179942 |
RAW - write through | 26 | 108591 | 0,99 | 8,72 | 96562 |
RAW - write back | 43 | 178508 | 1,46 | 16,81 | 58741 |
RAW - write back unsicher | 60 | 245787 | 2,93 | 12,10 | 42662 |
QCOW2 - no cache | 10 | 42392 | 0,49 | 5,09 | 247350 |
QCOW2 - direct sync | 10 | 43589 | 0,46 | 4,70 | 240559 |
QCOW2 - write through | 16 | 65736 | 0,53 | 4,85 | 159513 |
QCOW2 - write back | 46 | 189465 | 1,58 | 16,64 | 55344 |
QCOW2 - write back unsicher | 60 | 248719 | 2,66 | 11,46 | 42159 |
8. fio Sequential Read Test des Throughput – eine große Datei
# fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4M –iodepth=256 –size=10G —readwrite=read
8.1 fio Sequential Read Test des Throughput - eine große Datei (SCSI)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 118 | 484689 | 0,00 | 2,88 | 21634 |
Host Intel SSD | 68 | 281527 | 0,03 | 1,68 | 37246 |
RAW - no cache | 11 | 47736 | 0,01 | 4,47 | 219661 |
RAW - directsync | 11 | 47818 | 0,01 | 4,42 | 219286 |
RAW - write through | 28 | 115687 | 0,05 | 8,66 | 90639 |
RAW - write back | 56 | 232413 | 0,08 | 16,94 | 45117 |
RAW - write back unsicher | 54 | 224775 | 0,10 | 16,31 | 46650 |
QCOW2 - no cache | 10 | 43054 | 0,01 | 3,86 | 243551 |
QCOW2 - direct sync | 10 | 42535 | 0,01 | 3,70 | 246521 |
QCOW2 - write through | 27 | 112544 | 0,06 | 8,32 | 93170 |
QCOW2 - write back | 46 | 192170 | 0,07 | 13,92 | 54565 |
QCOW2 - write back unsicher | 51 | 211394 | 0,04 | 15,49 | 49603 |
8.2 fio Sequential Read Test des Throughput - eine große Datei (VIRTIO)
IOPS | BW in KB/s | CPU User | CPU System | Runtime in ms | |
---|---|---|---|---|---|
Host OCZ SSD | 118 | 484689 | 0,00 | 2,88 | 21634 |
Host Intel SSD | 68 | 281527 | 0,03 | 1,68 | 37246 |
RAW - no cache | 12 | 50127 | 0,01 | 7,23 | 209185 |
RAW - directsync | 12 | 49220 | 0,01 | 6,35 | 213038 |
RAW - write through | 30 | 125560 | 0,03 | 9,97 | 83512 |
RAW - write back | 63 | 259645 | 0,07 | 20,09 | 40385 |
RAW - write back unsicher | 60 | 249015 | 0,09 | 19,40 | 42109 |
QCOW2 - no cache | 11 | 47630 | 0,01 | 6,65 | 220151 |
QCOW2 - direct sync | 12 | 50572 | 0,00 | 5,87 | 207344 |
QCOW2 - write through | 29 | 120636 | 0,03 | 9,77 | 86921 |
QCOW2 - write back | 59 | 243764 | 0,17 | 18,88 | 43016 |
QCOW2 - write back unsicher | 60 | 247218 | 0,10 | 19,27 | 42415 |
9. IOPing Latenztest
# ioping -c 10 .
9.1 IOPing -Latenztest (SCSI)
IOPS in k | in MiB/s | Runtime in s | |
---|---|---|---|
Host OCZ SSD | 1,58 | 6,17 | 9,01 |
Host Intel SSD | 3,06 | 12,0 | 9,01 |
RAW - no cache | 1,54 | 6,02 | 9,01 |
RAW - direct sync | 1,62 | 6,33 | 9,01 |
RAW - write through | 3,94 | 15,4 | 9,01 |
RAW - write back | 3,85 | 15,0 | 9,01 |
RAW - write back unsicher | 4,21 | 16,5 | 9,01 |
QCOW2 - no cache | 1,59 | 6,23 | 9,01 |
QCOW2 - direct sync | 1,63 | 6,37 | 9,01 |
QCOW2 - write through | 3,94 | 15,4 | 9,01 |
QCOW2 - write back | 3,55 | 13,9 | 9,01 |
QCOW2 - write back unsicher | 4,27 | 16,7 | 9,01 |
9.2 IOPing -Latenztest (VIRTIO)
IOPS in k | in MiB/s | Runtime in s | |
---|---|---|---|
Host OCZ SSD | 1,58 | 6,17 | 9,01 |
Host Intel SSD | 3,06 | 12,0 | 9,01 |
RAW - no cache | 1,59 | 6,22 | 9,01 |
RAW - direct sync | 1,98 | 7,74 | 9,01 |
RAW - write through | 4,81 | 18,8 | 9,01 |
RAW - write back | 4,63 | 18,1 | 9,01 |
RAW - write back unsicher | 4,40 | 17,2 | 9,01 |
QCOW2 - no cache | 1,79 | 6,98 | 9,01 |
QCOW2 - direct sync | 1,83 | 7,14 | 9,01 |
QCOW2 - write through | 4,60 | 18,0 | 9,01 |
QCOW2 - write back | 4,69 | 18,3 | 9,01 |
QCOW2 - write back unsicher | 4,67 | 18,2 | 9,01 |
Anmerkungen
IO-Thread
Unter Proxmox 4.x kann für die virtuelle Festplatte zusätzlich die Option IO-Thread aktiviert werden. Ein paar Punkte dazu:
- in QEMU =1 IO-Thread je Diskcontroller
- in VirtIO-blk gibt es 1 Controller je Disk
- in VirtIO-SCSI by default ist 1 Controller für X Disk, IO-Thread wird somit zwischen den Disks geteilt
- unter VirtIO-SCSI-Single ist 1 VirtIO-SCSI Controller für 1 Disk zuständig
ToDo
- Auswertung formulieren
- weitere Test mit z.B. XFS als Dateisystem
- weitere Test mit IO-Thread aktiviert
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.