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
Die I/O scheduler is a part of the Linux operating system that sorts and merges I/O Anfragen und bestimmt die Reihenfolge, in der sie verarbeitet werden.
I/O schedulers are particularly beneficial for devices such as magnetic hard drives, where seek time can be expensive and where it is optimal to merge co-located requests. I/OScheduler 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-Verteilungen 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 alle I/O request. It also gives I/O Anfragen, die zu lange ausstehen und eine höhere Priorität haben. -
cfq— Der Completely Fair Queueing (CFQ) I/O -Scheduler versucht, I/O resources between processes. It sorts and inserts I/O Anfragen fair den Warteschlangen pro Prozess zuzuordnen. -
noop— Die I/O scheduler inserts all I/O Noop-Anfragen (No Operation) werden einer FIFO-Warteschlange zugeordnet und dann zu einer einzigen Anfrage zusammengeführt. 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.
$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