In Bezug auf IOPS habe ich im Internet mehrere Quellen gesehen, die darauf hinweisen, dass das IOPS einer bestimmten Anzahl von Festplatten einfach das IOPS einer einzelnen Festplatte multipliziert mit der Anzahl der Festplatten ist.
Wenn mein Verständnis von IOPS korrekt ist (und ich bin mir überhaupt nicht sicher), hätte ich gedacht, dass die Realität - neben vielen anderen Faktoren - vom RAID-Level abhängt. Mit RAID 1/10 werden alle Daten auf mindestens zwei Festplatten dupliziert, wodurch die Konkurrenz auf einer bestimmten Festplatte für einige E / A-Muster verringert wird. In gestreiften RAID-Levels wie RAID 0/5/6 werden Daten jedoch eher verteilt als dupliziert, was bedeutet, dass aufeinanderfolgende Leseanforderungen für dieselbe Spindel gelten können, was zum Blockieren führt, während die vorherige E / A abgeschlossen ist. Schriften sind noch umstrittener.
Ich sollte hinzufügen, dass ich schätze, dass die Realität aufgrund verschiedener Optimierungen und anderer Faktoren viel komplexer ist. Meine Frage ist wirklich nur, ob ich auf einer sehr grundlegenden Ebene verstehe, was IOPS bedeutet, auf dem richtigen Weg ist. Es könnte sein, dass meine Behauptung, dass IOPS sogar so von RAID-Levels beeinflusst werden könnte, auf ein grundlegendes Missverständnis des Konzepts hinweist.
quelle
Antworten:
Bei Festplatten werden IOPS im Allgemeinen von der Zugriffszeit der Festplatte dominiert. Diesist die Summe aus Suchlatenz + Rotationsverzögerung + Übertragungsverzögerung. Da diese Variablen stark von den Zugriffsmustern abhängen und nicht offensichtliche Wechselwirkungen mit dem spezifischen RAID-Layout (dh der Streifengröße) und dem Controller (dh der Vorauswahl ) haben, ist jede einfache Antwort falsch.
Versuchen wir jedoch, eine Baseballfigur zu haben. In erster Näherung sollte das durch ein n-Platten-Array garantierte IOPS das N-fache des IOPS einer einzelnen Platte betragen. Sowohl das RAID-Level als auch das Datenzugriffsmuster ändern diese Näherung erster Ordnung jedoch dramatisch, indem das Gewicht zwischen Such- / Rotations- / Übertragungslatenz verschoben wird.
Nehmen wir einige Beispiele an, unter der Annahme von 100 IOPS pro einzelnen Festplatten (ein typischer Wert für Festplatten mit 7200 U / min) und 4-Festplatten-Arrays (mit Ausnahme von RAID1, häufig nur auf 2-Wege-Festplatten beschränkt):
Lassen Sie mich wiederholen: Die obigen Angaben sind einfache und fast gebrochene Annäherungen. Wenn Sie mit einem (stark unvollständigen) RAID IOPS-Rechner spielen möchten, schauen Sie hier .
Gehen Sie jetzt zurück in die reale Welt. Bei realen Workloads ist RAID10 häufig die schnellere und bevorzugte Wahl , um selbst angesichts eines verschlechterten Arrays eine hohe Leistung aufrechtzuerhalten . RAID5 und RAID6 sollten nicht für leistungsabhängige Workloads verwendet werden, es sei denn, sie sind lesenzentriert oder sequentiell. Es ist erwähnenswert, dass seriöse RAID-Controller über einen durch große Leistungsverluste geschützten Rückschreib-Cache verfügen , um (durch starkes Stripe-Caching) die geringe RAID5 / 6-Leistung beim zufälligen Schreiben zu überwinden. Verwenden Sie RAID5 / 6 niemals mit RAID-Controllern ohne Cache , es sei denn, Sie interessieren sich wirklich nicht für die Geschwindigkeit des Arrays.
SSD sind verschiedene Tiere, dachte ich. Paritätsbasierte RAIDs haben eine wesentlich geringere durchschnittliche Zugriffszeit und verursachen einen viel geringeren Leistungsaufwand. Sie sind eine viel praktikablere Option als Festplatten. Bei einer kleinen Workload mit zufälligem Schreibzugriff würde ich jedoch sowieso ein RAID10-Setup verwenden.
quelle
Es ist nur eine Frage der Definitionen. Sie können IOPS auf verschiedenen Ebenen im System messen und erhalten unterschiedliche Werte. Angenommen, Sie haben zwei gespiegelte Datenträger und schreiben so schnell wie möglich. Das IOPS, das zu den Festplatten geht, ist doppelt so hoch wie die Anzahl der IOPS, die eine einzelne Festplatte mit einer ähnlichen Schreiblast verarbeiten kann. Das in den Controller eingehende IOPS entspricht jedoch der Anzahl der IOPS, die eine einzelne Festplatte verarbeiten kann.
Normalerweise ist es uns wichtig, wie viele logische IOPS wir in das Array aufnehmen können, und es ist uns egal, was auf Festplattenebene passiert. In diesem Fall sind Sie korrekt und das IOPS hängt von der RAID-Stufe, der Anzahl der Festplatten, der Leistung der einzelnen Festplatten und in einigen Fällen von den spezifischen Merkmalen der Vorgänge ab.
quelle