Performance dei dischi in PVE

Disponendo di risorse economiche molto limitate mi trovo spesso a dover fare server con dischi SATA e senza controller RAID dedicato, usando ZFS in PVE (oppure in teoria usando il raid software di mdadm in Debian Linux e poi installando PVE in un secondo momento, una cosa abbastanza orrenda). In generale il risultato sono macchine che hanno prestazioni dallo scadente al pietoso per quanto riguarda il numero di IOPS, e questo si vede in modo molto chiaro, specie sui guest Windows che paiono soffrire molto più dei guest Linux anche per carichi mediamente banali. Credo che il motivo sia che Windows ha millemila processi che girano costantemente, dall'update manager all'indicizzazione a chissà quante altre cazzate inutili che lo rendono quel mostro che è. Comunque sia, le perforamnce di Windows server fanno pietà, a parità di tipo di dischi e di controller, rispetto a quelle di Linux.

Questi sono i risultati del comando "pveperf" su diverse macchine di classe economica che ho provato.

Dell R310 anno 2010

PERC H700 con 512K di cache in scrittura.

Dischi WD Gold 2 TB WDC WD2005FBYZ

PVE 5.2.1 con LVM

CPU BOGOMIPS: 40452.32

REGEX/SECOND: 1305327

BUFFERED READS: 190.32 MB/sec

AVERAGE SEEK TIME: 7.25 ms

FSYNCS/SECOND: 3072.59

SERVER GEMM XEON E3

SATA della mainboard

Dischi WD Gold 2 TB WDC WD2005FBYZ (Write cache ON)

PVE 4.4.1 con ZFS

CPU BOGOMIPS: 24000.60

REGEX/SECOND: 2880398

FSYNCS/SECOND: 890.19

SERVER GEMM XEON E3

SATA

Dischi Toshiba 2 TB MG03ACA200

PVE 4.4.1 con ZFS

CPU BOGOMIPS: 24000.56

REGEX/SECOND: 2803194

FSYNCS/SECOND: 102.10

SERVER HP XEON E3

SATA della mainboard

DISCHI WD Gold 2 TB WDC WD2005FBYZ

PVE 5.1-42 con ZFS

CPU BOGOMIPS: 26496.00

REGEX/SECOND: 3588051

FSYNCS/SECOND: 996.44

Dell T340 XEON E-2124

controller PERC H330 senza cache in scrittura

dischi HGST HUS722T2TAL

PVE 6.2-4 con LVM

CPU BOGOMIPS: 26399.92

REGEX/SECOND: 4361372

BUFFERED READS: 186.21 MB/sec

AVERAGE SEEK TIME: 8.34 ms

FSYNCS/SECOND: 526.10

FUJITSU SIEMES Xeon E3-1225

SATA

DISCHI 1 TB Seagate ST1000DM010-2EP102

PVE 5.3.11 su raid con MD/ext4

CPU BOGOMIPS: 26496.00

REGEX/SECOND: 3563047

BUFFERED READS: 187.50 MB/sec

AVERAGE SEEK TIME: 15.52 ms

FSYNCS/SECOND: 42.12

Dell R300 Xeon X5460

SAS6IR senza cache

dischi WD HA210 2TB

PVE 4.15-18 con LVM

CPU BOGOMIPS: 25331.24

REGEX/SECOND: 750907

BUFFERED READS: 125.50 MB/sec

AVERAGE SEEK TIME: 7.10 ms

FSYNCS/SECOND: 523.92

Dell Xeon E5620

controller con cache

raid5 di 3 dischi SAS

PVE 4.4.1 con LVM

CPU BOGOMIPS: 76609.68

REGEX/SECOND: 1067450

BUFFERED READS: 328.53 MB/sec

AVERAGE SEEK TIME: 4.08 ms

FSYNCS/SECOND: 3038.53

DELL T30 Xeon E3 1225V5 3.3 Ghz

SATA

dischi WD DC HA210 HUS722T2TALA604

PVE 6.0-4 con ZFS

CPU BOGOMIPS: 26496.00

REGEX/SECOND: 3972995

FSYNCS/SECOND: 645.91

Dell T340 Xeon E-2224

controller PERC H730P con cache e batteria

dischi SATA Dell (TOSHIBA MG04ACA2)

PVE 6.4.1 con LVM

CPU BOGOMIPS: 27199.24

REGEX/SECOND: 4906960

BUFFERED READS: 183.15 MB/sec

AVERAGE SEEK TIME: 7.40 ms

FSYNCS/SECOND: 9584.24

Hp microserver gen8 con Xeon E3-1220LV2 2.30GHz

SATA

dischi Hitachi HDS72202

PVE 7.1-7 con ZFS

CPU BOGOMIPS: 18358.44

REGEX/SECOND: 2048015

FSYNCS/SECOND: 104

Hp microserver gen8 con Xeon E3-1220LV2 2.30GHz

SATA

SSD Samsung 860QVO 1 TB (non raid)

PVE 8.2 con LVM

CPU BOGOMIPS: 18358.44

REGEX/SECOND: 2048015

BUFFERED READS: 443.88 MB/sec

AVERAGE SEEK TIME: 0.06 ms

FSYNCS/SECOND: 378.41

Hp microserver gen8 con Xeon E3-1220LV2 2.30GHz

SATA

SSD Samsung 845DC 400 GB (non raid)

PVE 8.2 con LVM

CPU BOGOMIPS: 18358.44

REGEX/SECOND: 2048015

BUFFERED READS: 424.39 MB/sec

AVERAGE SEEK TIME: 0.06 ms

FSYNCS/SECOND: 3846.87

Hp microserver gen8 con Xeon E3-1220LV2 2.30GHz

SATA

SSD Samsung 870 EVO 2 TB (non raid)

PVE 8.2 con LVM

CPU BOGOMIPS: 18358.44

REGEX/SECOND: 2048015

BUFFERED READS: 537.29 MB/sec

AVERAGE SEEK TIME: 0.05 ms

FSYNCS/SECOND: 598.50

Hp microserver gen8 con Xeon E3-1220LV2 2.30GHz

Hp Smartarray P222 cache 512K e batteria

dischi Hitachi HDS72202

PVE 7.1-7 con LVM

CPU BOGOMIPS: 18358.44

REGEX/SECOND: 2048015

BUFFERED READS: 145.64 MB/sec

AVERAGE SEEK TIME: 8.44 ms

FSYNCS/SECOND: 5471.12

Dell Poweredge T110 II Xeon E3-1220V2 3.10GHz

SATA

dischi Seagate 2TB ST2000NM000B-2TD100

PVE 8.3.0 con ZFS

CPU BOGOMIPS: 24742.88

REGEX/SECOND: 2440530

FSYNCS/SECOND: 118

Da questi risultati si evince che OVVIAMENTE un controller con la cache fa una differena enorme, in particolare l'ultima macchina, la piu` recente, fa 9000 IOPS. (Vale la pena di notare che all'atto pratico non si "sente" questa differenza con una macchina che ne fa 3000). Eliminando il controller con la cache, ecco che il numero di IOPS viene a dipendere a mio avviso principalmente dai dischi e non dall'uso di LVM o ZFS. Si vede chiaramente quali dischi fanno PENA e quali invece sono decenti. I dischi HGST (e gli attuali WD HA210 che sono sempre HGST) si attestano sui 500-600 IOPS, i vecchi dischi WD GOLD erano meglio con 900-1000 IOPS, i Toshiba si fermano a 100, e il top del lento sono i Seagate ST1000 da 45 IOPS, che però non rendono giustizia alla marca, dovremmo provare dei dischi più performanti.

Purtroppo in questo test non ho avuto modo di provare dischi Seagate moderni come gli Ironwolf e gli Exos, almneo per ora. Sono un pochino deluso dai WD DC HA210 che si dimostrano meno performanti dei vecchi Gold.

A livello di "sensazione", devo dire che bene o male se si escludono i dischi PENOSI da meno di 100 IOPS, si riesce comunque a lavorare con un carico senza pretese anche con soli 500 IOPS. Fare girare Windows su un disco da 100 IOPS invece è una tragedia di lentezza, una cosa inaffrontabile.

PVE/PerformanceTests (last edited 2024-11-28 19:02:35 by Kurgan)