Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
I/O Scheduler für AL2
Der I/O Scheduler ist Teil des Linux-Betriebssystems, der I/O Anfragen sortiert und zusammenführt und die Reihenfolge festlegt, in der sie verarbeitet werden.
I/O Scheduler eignen sich besonders für Geräte wie magnetische Festplatten, bei denen die Suchzeit teuer sein kann und bei denen es optimal ist, Anfragen zusammenzuführen, die an einem Ort angeordnet sind. I/O Scheduler haben bei Solid-State-Geräten und virtualisierten Umgebungen weniger Wirkung. Dies liegt daran, dass sich der sequentielle und zufällige Zugriff bei Solid-State-Geräten nicht unterscheiden und der Host für virtualisierte Umgebungen eine eigene Planungsebene bereitstellt.
In diesem Thema wird der Amazon I/O Linux-Scheduler behandelt. Weitere Informationen über den I/O Scheduler, der von anderen Linux-Distributionen verwendet wird, finden Sie in der jeweiligen Dokumentation.
Unterstützte Scheduler
Amazon Linux unterstützt die folgenden I/O Scheduler:
-
deadline— Der I/O Deadline-Scheduler sortiert I/O Anfragen und bearbeitet sie in der effizientesten Reihenfolge. Er garantiert eine Startzeit für jede I/O Anfrage. Es gibt auch I/O Anfragen, die zu lange anhängig waren, eine höhere Priorität. -
cfq— Der Completely Fair Queueing (CFQ) I/O -Scheduler versucht, Ressourcen fair zwischen Prozessen zuzuweisen I/O. Er sortiert I/O Anfragen und fügt sie in prozessspezifische Warteschlangen ein. -
noop— Der No Operation (noop) I/O -Scheduler fügt alle I/O Anfragen in eine FIFO-Warteschlange ein und führt sie dann zu einer einzigen Anfrage zusammen. Dieser Scheduler führt keine Anforderungssortierung durch.
Standard-Scheduler
No Operation (noop) ist der I/O Standard-Scheduler für Amazon Linux. Dieser Scheduler wird aus folgenden Gründen verwendet:
-
Viele Instance-Typen verwenden virtualisierte Geräte, bei denen der zugrunde liegende Host die Planung für die Instance durchführt.
-
Solid-State-Geräte werden in vielen Instance-Typen verwendet, bei denen die Vorteile eines I/O Schedulers weniger zum Tragen kommen.
-
Er ist der am wenigsten invasive I/O Scheduler und kann bei Bedarf angepasst werden.
Ändern des Schedulers
Eine Änderung des I/O Schedulers kann die Leistung erhöhen oder verringern, je nachdem, ob der Scheduler dazu führt, dass in einer bestimmten Zeit mehr oder weniger I/O Anfragen abgeschlossen werden. Dies hängt weitgehend von Ihrer Workload, der Generierung des verwendeten Instance-Typs und dem Gerätetyp. Wenn Sie den verwendeten I/O Scheduler ändern, empfehlen wir Ihnen, ein Tool wie iotop zu verwenden, um die I/O Leistung zu messen und festzustellen, ob die Änderung für Ihren Anwendungsfall von Vorteil ist.
Sie können den I/O Scheduler für ein Gerät mit dem folgenden Befehl anzeigen, der nvme0n1 als Beispiel verwendet wird. Ersetzen Sie nvme0n1 im folgenden Befehl mit dem Gerät in /sys/block Ihrer Instance.
$cat /sys/block/nvme0n1/queue/scheduler
Verwenden Sie den folgenden Befehl, um den I/O Scheduler für das Gerät einzurichten.
$echocfq|deadline|noop> /sys/block/nvme0n1/queue/scheduler
Verwenden Sie beispielsweise den folgenden Befehl, um den I/O Scheduler für ein xvda Gerät von noop bis cfq einzustellen.
$echocfq> /sys/block/xvda/queue/scheduler