View a markdown version of this page

I/O Scheduler für AL2 - Amazon Linux 2

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 ein Teil des Linux-Betriebssystems, der I/O Anfragen sortiert und zusammenführt und die Reihenfolge bestimmt, in der sie verarbeitet werden.

I/O Scheduler sind besonders vorteilhaft für Geräte wie magnetische Festplatten, bei denen Suchzeit teuer sein kann und bei denen es optimal ist, Anfragen an einem Ort zusammenzuführen. 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 zum 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 Deadline I/O Scheduler sortiert I/O Anfragen und bearbeitet sie in der effizientesten Reihenfolge. Es garantiert eine Startzeit für jede I/O Anfrage. Außerdem erhalten 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 wirksam sind.

  • Es 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 mehr oder weniger I/O Anfragen in einer bestimmten Zeit 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 mithilfe des folgenden Befehls anzeigen, der nvme0n1 als Beispiel dient. 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.

$ echo cfq|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.

$ echo cfq > /sys/block/xvda/queue/scheduler