Planificateur d'E/S pour AL2 - Amazon Linux 2

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Planificateur d'E/S pour AL2

Les I/O scheduler is a part of the Linux operating system that sorts and merges I/O demandes et détermine l'ordre dans lequel elles sont traitées.

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/Oles planificateurs ont moins d'effet sur les périphériques SSD et les environnements virtualisés. En effet, pour les périphériques SSD, l’accès séquentiel et aléatoire ne diffère pas, et pour les environnements virtualisés, l’hôte fournit sa propre couche de planification.

Cette rubrique traite du planificateur Amazon Linux I/O . Pour plus d’informations sur le planificateur d’I/O utilisé par d’autres distributions Linux, reportez-vous à leur documentation respective.

Planificateurs pris en charge

Amazon Linux prend en charge les I/O planificateurs suivants :

  • deadline— Le I/O planificateur de délais trie les I/O demandes et les traite dans l'ordre le plus efficace. Il garantit une heure de début pour chaque I/O request. It also gives I/O demande en attente depuis trop longtemps avec une priorité plus élevée.

  • cfq— Le I/O planificateur Completely Fair Queueing (CFQ) tente de répartir I/O resources between processes. It sorts and inserts I/O équitablement les demandes dans des files d'attente par processus.

  • noop— Les I/O scheduler inserts all I/O demandes No Operation (noop) sont placées dans une file d'attente FIFO, puis les fusionnent en une seule demande. Ce planificateur n’effectue aucun tri des demandes.

Planificateur par défaut

No Operation (noop) est le I/O planificateur par défaut pour Amazon Linux. Ce planificateur est utilisé pour les raisons suivantes :

  • De nombreux types d’instance utilisent des périphériques virtualisés sur lesquels l’hôte sous-jacent effectue une planification pour l’instance.

  • Les périphériques SSD sont utilisés dans de nombreux types d'instances où les avantages d'un I/O planificateur ont moins d'effet.

  • C'est le I/O planificateur le moins invasif, et il peut être personnalisé si nécessaire.

Modifier le planificateur

La modification du I/O planificateur peut augmenter ou diminuer les performances selon que le planificateur entraîne le traitement d'un plus grand nombre ou d'une diminution du nombre de I/O demandes dans un délai donné. Cela dépend largement de votre charge de travail, de la génération du type d’instance utilisé et du type de périphérique auquel vous accédez. Si vous modifiez le planificateur d'E/S utilisé, nous vous recommandons d'utiliser un outil, tel que iotop, pour mesurer les I/O performances et déterminer si le changement est bénéfique pour votre cas d'utilisation.

Vous pouvez afficher le I/O planificateur d'un appareil à l'aide de la commande suivante, qui nvme0n1 sert d'exemple. Remplacez nvme0n1 dans la commande suivante par le périphérique répertorié dans /sys/block sur votre instance.

$ cat /sys/block/nvme0n1/queue/scheduler

Pour définir le I/O planificateur de l'appareil, utilisez la commande suivante.

$ echo cfq|deadline|noop > /sys/block/nvme0n1/queue/scheduler

Par exemple, pour définir le I/O planificateur d'un xvda appareil de noop àcfq, utilisez la commande suivante.

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