Ich hatte heute die Gelegenheit, drei Ceph Jewel OSD Pools mit jeweils unterschiedlicher Festplatten-Hardware bei Hetzner kurz zu vergleichen.
Pool 1 besteht aus drei 512 GB NVMe Speichern, Pool 2 aus drei 10 TB SATA Festplatten, Pool 3 aus drei 480 GB SSD Speichern. Die OSD sind wie in der Graphik gezeigt angeordnet.
Ich habe daraus drei Speicher zu je 32 GB genommen und in eine Centos 7 KVM gemounted.
Zunächst habe ich GNOME Disk Utility’s für ein Benchmarking benutzt, da dieses ohne großen Aufwand einen schönen Graphen produziert und die Informationen entsprechend nett aufbereitet. Anschließend nutzte ich hdparm, um die buffered reads und die cached reads zu vergleichen. Zum Abschluss nutzte ich den Klassiker dd.
NVMe Pool
GNOME Disk Utility Ergebnisse des NVMe Pools
hdparm Ergebnisse des NVMe Pools
Die Ergebnisse eines einfachen hdparm Read Tests:
1 | [root@benchmark ~]# hdparm -t /dev/vdb |
/dev/vdb:
Timing buffered disk reads: 2046 MB in 3.04 seconds = 672.67 MB/sec
Timing buffered disk reads: 1966 MB in 3.06 seconds = 642.92 MB/sec
Timing buffered disk reads: 2342 MB in 3.00 seconds = 779.75 MB/sec
Timing buffered disk reads: 2054 MB in 3.01 seconds = 683.19 MB/sec
Timing buffered disk reads: 2350 MB in 3.02 seconds = 778.43 MB/sec
Ein hdparm cached read Test:
1 | [root@benchmark ~]# hdparm -T /dev/vdb |
/dev/vdb:
Timing cached reads: 32066 MB in 2.00 seconds = 16054.56 MB/sec
Timing cached reads: 32240 MB in 2.00 seconds = 16142.07 MB/sec
Timing cached reads: 31932 MB in 2.00 seconds = 15987.40 MB/sec
Timing cached reads: 32046 MB in 2.00 seconds = 16045.71 MB/sec
Timing cached reads: 32244 MB in 2.00 seconds = 16144.19 MB/sec
dd Ergebnisse des NVMe Pools
[root@benchmark vdb]# time sh -c “dd if=/dev/zero of=ddfile bs=8k count=250000 && sync”; rm ddfile -f
250000+0 records in
250000+0 records out
2048000000 bytes (2.0 GB) copied, 11.8286 s, 173 MB/s
real 0m11.893s
user 0m0.018s
sys 0m1.153s
SATA Pool
GNOME Disk Utility Ergebnisse des SATA Pools
hdparm Ergebnisse des SATA Pools
Ein hdparm read Test:
1 | [root@benchmark ~]# hdparm -t /dev/vdc |
/dev/vdc:
Timing buffered disk reads: 1966 MB in 3.20 seconds = 613.67 MB/sec
Timing buffered disk reads: 2030 MB in 3.00 seconds = 675.91 MB/sec
Timing buffered disk reads: 1378 MB in 3.03 seconds = 455.36 MB/sec
Timing buffered disk reads: 2242 MB in 3.00 seconds = 747.06 MB/sec
Timing buffered disk reads: 1730 MB in 3.06 seconds = 565.50 MB/sec
Ein hdparm cached read Test:
1 | [root@benchmark ~]# hdparm -T /dev/vdc |
/dev/vdc:
Timing cached reads: 31522 MB in 2.00 seconds = 15782.95 MB/sec
Timing cached reads: 32146 MB in 2.00 seconds = 16094.70 MB/sec
Timing cached reads: 32016 MB in 2.00 seconds = 16029.88 MB/sec
Timing cached reads: 32210 MB in 2.00 seconds = 16129.47 MB/sec
Timing cached reads: 32032 MB in 2.00 seconds = 16038.25 MB/sec
dd Ergebnisse des SATA Pools
[root@benchmark vdc]# time sh -c “dd if=/dev/zero of=ddfile bs=8k count=250000 && sync”; rm ddfile -f
250000+0 records in
250000+0 records out
2048000000 bytes (2.0 GB) copied, 47.5961 s, 43.0 MB/s
real 0m47.965s
user 0m0.014s
sys 0m1.085s
SSD Pool
GNOME Disk Utility Ergebnisse des SSD Pools
hdparm Ergebnisse des SSD Pools
Ein einfacher hdparm read Test:
1 | [root@benchmark ~]# hdparm -t /dev/vdd |
/dev/vdd:
Timing buffered disk reads: 2354 MB in 3.13 seconds = 751.34 MB/sec
Timing buffered disk reads: 2698 MB in 3.17 seconds = 851.49 MB/sec
Timing buffered disk reads: 2314 MB in 3.00 seconds = 771.06 MB/sec
Timing buffered disk reads: 2002 MB in 3.19 seconds = 627.02 MB/sec
Timing buffered disk reads: 2698 MB in 3.02 seconds = 893.14 MB/sec
Ein hdparm cached read Test:
[root@benchmark ~]# hdparm -T /dev/vdd
/dev/vdd:
Timing cached reads: 31984 MB in 2.00 seconds = 16015.40 MB/sec
Timing cached reads: 31900 MB in 2.00 seconds = 15971.69 MB/sec
Timing cached reads: 30950 MB in 2.00 seconds = 15494.31 MB/sec
Timing cached reads: 31414 MB in 2.00 seconds = 15727.75 MB/sec
Timing cached reads: 31440 MB in 2.00 seconds = 15741.93 MB/sec
dd Ergebnisse des SSD Pools
[root@benchmark vdd]# time sh -c "dd if=/dev/zero of=ddfile bs=8k count=250000 && sync"; rm ddfile -f
250000+0 records in
250000+0 records out
2048000000 bytes (2.0 GB) copied, 32.6841 s, 62.7 MB/s
real 0m32.748s
user 0m0.018s
sys 0m1.069s