On 22.03.2012 11:16, Christian Brandt wrote:
> Gerade habe ich unter Ubuntu 12.04 Beta 1 ein RAID5 aus acht Daten- und
> einer Parity Platte je 1TB - schon ein paar Jahre alt - getestet.
>
> hdparm -t /dev/md1 liefert schnuckelige 650MB/s.
Sieht toll aus, aber im praktischen Betrieb ist dieser Parameter
vollständig irrelevant. (Es gibt ganz wenige Ausnahmen.)
Wir haben bei uns mal eine Statistik gefahren. Die mittlere I/O-Block
Größe über alle Zugriffe liegt bei knapp 20kB. Vermessungsgrundlage
waren alle IOs von von ca. 3 Dutzend Servern über einen Zeitraum von
einem Tag. Auf anderen LUNs mit anderen Servern und auch virtualisierten
Clients sah es aber auch nicht signifikant anders aus.
Um 20kB zu lesen braucht dein System rechnerisch ca. 30µs. In der Praxis
wird es natürlich mehr sein, weil es unter der Stripe-Size liegt.
Mutmaßlich um die 200µs. Aber im Durchsatz bleibt es dabei.
Eine Zugriffszeit dürfte bei TB-Platten im Mittel um die 14-15ms liegen
(max. 70 IOPS). Heißt, auf 200µs I/O kommt bei jeder Platte etwa
14-15ms. Kurzum, die Zugriffszeit ist "nur" gut 70 mal weniger relevant,
wie der Durchsatz. Wäre die Stripe-Size kleiner als die 20kB, wäre das
Verhältnis sogar noch extremer, weil nun für einen Zugriff immer mehrere
Platten warten müssten und in der Zeit nicht mehr für Datentransfers zur
Verfügung stünden. Also Stripesize bei Desktopplatten immer schön groß
machen.
> Die average Seek-Time über die ganze Platte ist natürlich nicht so
> dolle. ABER ein Seek-Test in einer 500MB grossen Datenbank sah mit
> "average seek time" von 0,08ms ist doch recht anständig. Und ja, das ist
> kein Tippfehler.
Ein Tippfehler vielleicht nicht, aber Messfehler aber sicherlich. Hier
hat Dich sicher ein Cache ins Bockshorn gejagt. Selbst, wenn man nur ein
sechzentel der Plattenkapazität nutzt und damit häufig von
Track-To-Track Seeks profitiert - eine gängige Methode, um Platten in
Servern in den Hintern zu treten -, ist ein Beschleunigungsfaktor von
ca. 180 damit sicher nicht zu erklären.
Dass Caches die Sache beschleunigen, ist außer Frage und das sollte man
auch immer nutzen. Nur tun sie das auch ohne RAID und insofern sollte
man diesen Nutzen nicht dm RAID zuschreiben.
(By the way, war das wirklich average seek, oder nicht doch eher und
vernünftiger average access time?)
> Ich denke das kommt daher daß acht Platten mit 50-60MB
> pro Track ohnehin kaum seeken müssen und natürlich acht Platten auch
> 32*8=256MB Cache haben, sozusagen Shortstroking durch Spezialisierung
> auf eine Anwendung.
Exakt. Wenn Du gescheitere Werte haben willst, brauchst Du die
differenzielle Entwicklung bei unterschiedlichen Größen betrachten. Die
mittlere Zugriffszeit auf jeder /zusätzlichen/ 100 GB dürfte erheblich
schlechter ausfallen.
> Jedenfalls muß man bei diesem Rechner erstmal keine SSD zur
> Leistungssteigerung einbauen :-)
Das /muss/ man bei keinem Rechner. Die Geschwindigkeit wird aber auf
besseres Desktop-Niveau einbrechen, sobald das RAID erst mal voll ist
und auch in seiner Kapazität genutzt wird. Lediglich bei vielen
parallelen zugriffen werden (effektiv) 8 Spindeln immer schneller sein
als eine. Das bringt z.B. beim Booten einiges. Wenn man jedoch nicht
untypisch für einen Desktop auf eine einzige Anwendung wartet, ist der
Effekt üblicherweise eher gering, da die meisten Anwendungen kaum
parallele I/O-Anfragen absetzen.
Eine zusätzliche SSD, wäre aber sicher billiger und nebenbei auch
deutlichst Energiesparender gewesen, wenn es primär darum geht, einen
Rechner zu beschleunigen. Wenn es Primär darum geht 8TB zu haben, ist
das natürlich nicht so. Dann ist der Vergleich mit einer SSD aber auch
irgendwie unangebracht.
Marcel