[sage] ext. Plattenbox 2-3TB gesucht
Benedikt Stockebrand
me at benedikt-stockebrand.de
Mon Oct 20 19:55:22 CEST 2008
Moin Volker und Liste,
>> I/O, sequentiell, 1MB-Blöcke, durch das ZFS:
>>
>> dd if=/dev/zero of=junk bs=1024k count=10k --> 103.4s = 99 MB/s
>> dd if=junk of=/dev/zero bs=1024k count=10k --> 49.1s = 209 MB/s
>
> Der zweite Wert ist schon ziemlich gut. Vielleicht hat da der ARC-Cache
> vom ZFS zugeschlagen... :-)
na ja, wenn die Lesevorgänge über fünf Platten verteilt werden, ist da
prinzipiell schon etwas mehr drin -- mit den Werten für einzelne
Platten komme ich rechnerisch auf ein theoretisches Maximum von
ca. 350-400 MB/s bzw. mit den Werten beim parallelen Lesen unten auf
ca. 300 MB/s. Davon geht dann aber noch ab, dass in dem ZFS schon
einiges Zeug liegt und bei den Tests oben die eher inneren Zylinder
beschrieben worden sind. Um das sauber zu testen, müsste ich die
Daten nochmal abpumpen, was dann doch mit etwas viel Aufwand verbunden
wäre. Und mit einem Dutzend 15k-SAS-Platten sieht das ganze mit
ziemlicher Sicherheit nochmal völlig anders aus...
Aber auch so: 209 MB/s bleiben doppelt so viel, wie man über ein
Gbit-Interface prügeln kann -- oder über zwei Gbit-Interfaces, wenn
man die bündelt. Das ist für mich im Moment die relevante Messlatte,
und die ist noch lange nicht erreicht. (Wahrscheinlich verglüht mir
dabei zuerst der Switch...)
>> I/O, sequentiell, 1MB-Blöcke, direkt auf ein einzelnes Block Device
>>
>> dd if=/dev/dsk/c3t0d0 of=/dev/zero bs=1024k count=10k --> 132.3s = 77 MB/s
>> dd if=/dev/zero bs=1024k of=/dev/dsk/c3t0d0 count=10k --> 142.0s = 72 MB/s
>>
>> I/O, sequentiell, 1MB-Blöcke, 6 Block Devices parallel
>>
>> for t in c3t{0,1,2,3,4,5}d0; \
>> do dd if=/dev/dsk/$t of=/dev/null bs=1024k count=10k & done; \
>> for t in 1 2 3 4 5 6; do wait; done'
>> --> 162.5s = 63 MB/s
>
> Kann man das so interpretieren, daß der Overhead durch das Array
> ca. 20% bei sechsfachem Schreiben beträgt? Das ist ja etwas viel...
> aber als Datengrab eigentlich völlig OK.
Nein, bei sechsfachem *Lesen* -- die Daten auf dem JBOD wollte ich
nicht nochmal überschreiben. Und dass es beim Lesen zu Verlusten
kommt, ist klar, weil das zwangsläufig immer synchron ist.
Wie leistungsfähig letztlich das JBOD, der Controller, der PCIe-Bus
und die CPUs der X2200 (für die Parity-Berechnung) sind und wo man als
erstes an Grenzen stößt, wäre nur mit erheblichem zusätzlichen Aufwand
und vor allem leistungsstärkerer Vergleichshardware zu klären.
Und für Random I/O müsste man erstmal festlegen, wie groß die
einzelnen reads/writes tatsächlich sind bevor man ein passendes
Testprogramm basteln könnte.
Schönen Abend,
Benedikt
--
Benedikt Stockebrand, Dipl.-Inform. http://www.benedikt-stockebrand.de/
More information about the SAGE
mailing list