PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KVM VM iozone Messnung



pixel
21.05.16, 06:16
Hallo zusammen,

da ich etwas Probleme mit dem Durchsatz auf meinen VM's habe versuche ich das Problem mal einzugrenzen. Das Virtualisierungs-System besteht aus:

Host: KVM01 (Ubuntu-Server 16.04 LTS 64Bit)
VM: STORAGE (Debian8 64Bit)

Auf dem Host liegt der Storage-Pool von Libvirt in einer volume-Gruppe (LVM). Die virtuellen HD's für die Gäste bilden also die LV's die dann vom Gast aus partitioniert/formatiert werden. Im Gast sind diese als BTRFS formatiert.

für die Messung lege ich zunächst im Host ein LV an, formatiere und mounte es:

lvcreate -L 20G vg01 -n kvm_test
mkfs.btrfs /dev/vg01/kvm_test
mkdir /kvm_test
mount /dev/vg01/kvm_test /kvm_test

Die Default-Mount-Optionen unter Ubuntu sind:

(rw,relatime,space_cache,subvolid=5,subvol=/)

Anschließend lege ich für den Gast das gleiche LV an, Partitioniere es in der VM auf die maximale Größe, formatiere es ebenfalls mit BTRFS und mounte es. Auf dem Debian-System sind die Default-Mount-Optionen:

(rw,relatime,space_cache)

Um die Datenmenge (Ergebnisse) überschaubar zu halten wurden die Testläuft zunächst auf 0,1 und 2 reduziert. Nachfolgend eine Aufstellung aller Test-Variate:


0=write/rewrite
1=read/re-read
2=random-read/write
3=Read-backwards
4=Re-write-record
5=stride-read
6=fwrite/re-fwrite
7=fread/Re-fread,
8=random mix
9=pwrite/Re-pwrite
10=pread/Re-pread
11=pwritev/Re-pwritev
12=preadv/Re-preadv


Option:

-i 0 -i 1 -i 2


Es sollen insgesamt 500MB geschrieben werden welche in 5KB Records gesplittet sein sollen. Option:

-s 500m -r 8k

Der komplette Aufruf ist ist damit:

iozone -s 500m -r 8k -i 0 -i 1 -i 2

Nachfolgend die Ergebnisse mit verschieden VM-Einstellungen bezüglich der HD-Ansteuerung:


random random
write rewrite read reread read write
KVM01 1941489 2010112 3731912 3542148 3815172 7170
STOTAGE (RAW,None,Nativ) 29090 20018 4252343 4467829 3919768 7146
STOTAGE (RAW,Default,default) 25113 13200 4204817 4771042 3817302 7001
STOTAGE (RAW,writeback,threads) 16367 15659 4400141 4785267 3784040 7500
STOTAGE (RAW,directsync,native) 24792 13514 3951016 4716242 3993046 7474
STOTAGE (RAW,unsave,default) 21924 12909 4448891 4818920 4018684 6647

Was mir hier auffällt ist der regelrechte Einbruch von write/rewrite innerhalb der VM aber ich habe im Moment keine Idee wo ich ansetzen kann.

Evtl. hat jemand einen Tipp für mich.

Viele Grüße
pixel

marce
21.05.16, 20:54
ich weiß nicht, wie iozone da arbeitet, aber grundlegend sollte man Tests mit Datenmengen machen, die wesentlich größer sind als das, was das OS gerade irgendwie noch als Cache zur Verfügung stellen kann - und 500MB dürfte da sicherlich nicht ausreichen.

-> gerne 2x RAM als Mindestmenge für Schreib- und Lese-Operationen.

Ansonsten - wie sind denn die Hardware des Storages-Bereichs unterhalb des Hosts aus?


edit: Gerade bei mir gestestet direkt auf dem Lappi - wenn ich mit 500MB Filesize teste bekomme ich wesentlich höhere Werte als wenn ich mit Werten jenseits der RAM-Größe teste. Auch wiederholt. Write-Caching scheint also einen massiven Effekt zu haben.

pixel
24.05.16, 16:56
ok, ich habe ein entsprechend größeres LV zum testen angelegt und den Aufruf entsprechend angepasst:

iozone -s 25g -r 8k -i 0 -i 1 -i 2 /kvm_test/
Ich habe die Zeit nicht gestoppt aber dass läuft schon bestimmt 4 Stunden. Ist mein Aufruf falsch?