Na alle problemen met firmware en controllers, langzame en snelle PCIe bussen, beginnen we nu eindelijk toe te komen aan het daadwerkelijke benchen van de Areca 1680ix/4GB cache en 12xMtron 7535.
Om te beginnen hebben we gekeken hoe 1 enkele controller schaalt als je het aantal disken omhoog schaalt. Er is daarbij gebruik gemaakt van de easyco benchmark.
Alle disken gebruiken nu firmware 0.18r3, de Areca controller de laatste stable 1.45. De results heb ik afgelezen voor blocksize 8k en bij 10 threads. Er is ook nog een 2x5 setup aan toegevoegd waarbij gebruik is gemaakt van een RAID 0 over 2 controller die allebij bestaan uit een RAID 0 array van 5 disks. RAID 00 dus
We zagen de volgende random read en write speeds:
code:
1
2
3
| 1 SSD 2 SSD 3 SSD 4 SSD 5 SSD 6 SSD 7 SSD 8 SSD 9 SSD 10 SSD 11 SSD 12 SSD 2x5 SSD
BW READ 489.6 483.4 486.5 488.8 478.8 482 488.4 481.8 483.8 479.2 485.8 483 495.8
BW WRITE 27.6 15.8 31.2 35.8 44.6 58.8 76.8 94.2 113.2 147.6 166.5 172.9 201 |
Te zien is dus dat de schaling qua write speed vrij linear is, eigenlijk tot de 11 disks als je punt 10 een tikkeltje omlaag trekt. Pas met disk 12 begint het af te nemen (wat helaas de laatste aansluiting is op de 1680ix-12, zodat ik niet nog met 13, 14, etc disks op 1 controller kan testen). Met 2x5, gebruik makend van mdadm ging het weer een stuk harder.
We hebben ook een intersante mail wisseling met de maker van easyco benchmark tool gehad (Doug Dumitru)
If you look at the write benchmarks before the 1st slowdown, you will
find that about 8GB of total writes have happened up to this point.
This happens to be the total RAM size of the two controllers. Thus you
are writing to RAM. The controllers then need to play catch up. As the
block size increases, the drives get more efficient so, eventually, the
controllers can keep a decent write rate.
Assuming that the controllers have battery backup (that you trust), this
should work out pretty well. I would model your expected usage to make
sure that you will not wear the drives out. The 7535 drives are SLC, so
they do last longer, but you can still kill them. With random writes
saturating these drives the wear computes as follows for 4K writes:
4K writes are around 140 IOPS (at the drive)
The erase block size is 2MB
The internal wear rate is about 280 MB/sec
At 32GB and 100,000 endurance, the lifetime of the drive is
3,200,000,000 MB. At 280 MB/sec this is 11,428,571 seconds or 132 days.
So if your application actually saturates the drives, you are looking at
just over 4 months of drive lifetime. Depending on your application,
this might be adequate or terrifying.
Dat is dus een wel erg lage lifetime als we de drives 24/7 100% zouden belasten.
Tevens interesant is dat ie vermoed dat we alleen de cache testen, en niet de SSD's:
In fact, I suspect that the reads and writes are both
coming from cache as the bm-flash only tests a 4GB file. Regular hard
disks might give you the same results.
Dit zijn we nog aan het overleggen, want als we alleen de cache hitten, waarom veranderen de getallen dan als we meerdere drives aan de array toevoegen?