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 EXT4 |
CPU BOGOMIPS: 18358.44 |
REGEX/SECOND: 2048015 |
BUFFERED READS: 272.73 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 |
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.