View a markdown version of this page

I/O planificateur 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.

I/O planificateur pour AL2

Le I/O planificateur fait partie du système d'exploitation Linux qui trie et fusionne les I/O demandes et détermine l'ordre dans lequel elles sont traitées.

I/O les planificateurs sont particulièrement utiles pour les appareils tels que les disques durs magnétiques, où le temps de recherche peut être coûteux et où il est optimal de fusionner des demandes colocalisées. I/O les 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 I/O planificateur utilisé par d'autres distributions Linux, consultez 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 demande. Cela donne également une priorité plus élevée aux I/O demandes en attente depuis trop longtemps.

  • cfq— Le I/O planificateur Completely Fair Queueing (CFQ) tente de répartir équitablement les ressources entre les processus. I/O Il trie et insère les I/O demandes dans des files d'attente par processus.

  • noop— Le I/O planificateur No Operation (noop) insère toutes les I/O demandes dans une file d'attente FIFO, puis les fusionne 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 I/O planificateur 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