Wie funktioniert ionice mit mehreren Laufwerken?

7

Ich verstehe, wie ioniceSie helfen können, wenn mehrere Prozesse Zugriff auf dieselben Festplattenressourcen anfordern, aber wie funktioniert es, wenn Sie mehrere Festplatten haben?

Beispielsweise haben Sie einen rsyncVorgang, bei dem Daten von Laufwerk A -> Laufwerk B und ein anderer Vorgang rsyncDaten von Laufwerk C -> Laufwerk D verschoben werden .

Theoretisch sollte ioniceeiner dieser rsyncProzesse seinen Durchsatz nicht ändern , da sie nicht um Ressourcen konkurrieren . Funktioniert das so oder wirkt es sich immer noch auf die Leistung aus?

Gibt es außerdem eine "Obergrenze" für die Gesamt- E / A , die auf einem Linux- System auftreten kann, das unabhängig von der Laufwerksgeschwindigkeit ist? Wenn Sie beispielsweise 100 SSD- Laufwerke angeschlossen hätten, würde das Betriebssystem irgendwann neben der Laufwerksgeschwindigkeit auf einen Engpass stoßen?

user159726
quelle

Antworten:

1

Unter Linux werden Laufwerke unabhängig voneinander geplant. Sie können sogar festlegen, dass der E / A-Planungsalgorithmus für verschiedene Laufwerke auf demselben System unterschiedlich ist, indem Sie an schreiben /sys/block/<device>/queue/iosched.

Die Bandbreite zwischen Speicher und Festplatten kann tatsächlich zu einem Engpass werden. Aus diesem Grund ist Hardware-RAID sinnvoll: Die Daten werden einmal an den RAID-Controller gesendet, nicht für jede Festplatte einzeln. Sie können diese Bandbreite auch erhöhen, indem Sie diese 100 SSDs an mehr als einen Computer anschließen und die Last auf diese verteilen.

Ich bin nicht sicher, wie der IO-Scheduler dies berücksichtigt, aber ich glaube nicht, dass dies der Fall ist.

Stribika
quelle