Caractéristiques et surveillance d'Amazon EBS I/O - Amazon EBS

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.

Caractéristiques et surveillance d'Amazon EBS I/O

Dans une configuration de volume donnée, certaines caractéristiques d'E/S déterminent le comportement de performance de vos EBS volumes. SSDLes volumes sauvegardés, à usage général SSD (gp2etgp3) et provisionnés IOPS SSD (io1etio2), offrent des performances constantes, qu'une opération d'E/S soit aléatoire ou séquentielle. HDDLes volumes sauvegardés, Throughput Optimized HDD (st1) et Cold HDD (sc1), offrent des performances optimales uniquement lorsque les opérations d'E/S sont volumineuses et séquentielles. Pour comprendre le fonctionnement SSD et les HDD volumes de votre application, il est important de connaître le lien entre la demande du volume, la quantité IOPS disponible, le temps nécessaire pour effectuer une opération d'E/S et les limites de débit du volume.

IOPS

IOPSsont une unité de mesure représentant les opérations d'entrée/sortie par seconde. Les opérations sont mesurées en KiB, et la technologie de disque sous-jacente détermine la quantité maximale de données qu'un type de volume compte comme une seule E/S. La taille des E/S est plafonnée à 256 KiB pour les volumes et à 1 024 KiB pour les SSD volumes, car les HDD SSD volumes gèrent des E/S petites ou aléatoires de manière beaucoup plus efficace que les volumes. HDD

Lorsque de petites opérations d'E/S sont physiquement séquentielles, Amazon EBS essaie de les fusionner en une seule opération d'E/S jusqu'à la taille d'E/S maximale. De même, lorsque les opérations d'E/S sont supérieures à la taille d'E/S maximale, Amazon EBS tente de les diviser en opérations d'E/S plus petites. Le tableau suivant montre quelques exemples.

Type de volume Taille d’I/O maximum Opérations d’I/O de votre application Nombre de IOPS Remarques
SSD 256 Kio 1 opération d’I/O de 1 024 KiB 4 (1 024÷256=4) Amazon EBS divise les 1 024 opérations d'E/S en quatre opérations plus petites de 256 KiB.
8 x opérations d’I/O séquentielles de 32 Kio 1 (8x32=256) Amazon EBS fusionne les huit opérations d'E/S séquentielles de 32 KiB en une seule opération de 256 KiB.
8 opérations d’I/O aléatoires de 32 KiB 8 Amazon EBS compte les opérations d'E/S aléatoires séparément.
HDD 1 024 KiB 1 opération d’I/O de 1 024 KiB 1 L’opération d’I/O est déjà égale à la taille d’I/O maximale. Elle n’est ni fusionnée ni divisée.
8 x opérations d’I/O séquentielles de 128 Kio 1 (8x128=1 024) Amazon EBS fusionne les huit opérations d'E/S séquentielles de 128 KiB en une seule opération d'E/S de 1 024 KiB.
8 opérations d’I/O aléatoires de 32 KiB 8 Amazon EBS compte les opérations d'E/S aléatoires séparément.

Par conséquent, lorsque vous créez un volume SSD sauvegardé en charge de 3 000 IOPS (soit en provisionnant un io2 volume de 3 000 GoIOPS, io1 soit en dimensionnant un gp2 volume à 1 000 GiB, soit en utilisant un gp3 volume), et que vous l'attachez à une instance EBS optimisée capable de fournir une bande passante suffisante, vous pouvez transférer jusqu'à 3 000 E/S de données par seconde, le débit étant déterminé par la taille des E/S.

Latence et longueur de file d’attente d’un volume

La longueur de file d’attente d’un volume correspond au nombre de demandes d’I/O pour un appareil. La latence est le temps réel passé par le end-to-end client lors d'une opération d'E/S, en d'autres termes, le temps écoulé entre l'envoi d'une E/S EBS et la réception d'un accusé de réception indiquant EBS que la lecture ou l'écriture des E/S est terminée. La longueur de la file d'attente doit être correctement calibrée en fonction de la taille des E/S et de la latence afin d'éviter de créer des goulots d'étranglement sur le système d'exploitation client ou sur la liaison réseau vers celui-ci. EBS

La longueur de file d'attente optimale varie pour chaque charge de travail, en fonction de la sensibilité IOPS et de la latence de votre application. Si votre charge de travail ne fournit pas suffisamment de demandes d'E/S pour utiliser pleinement les performances disponibles pour votre EBS volume, il est possible que celui-ci ne fournisse pas le débit IOPS ou le débit que vous avez provisionnés.

Les applications à transactions intensives sont sensibles à l'augmentation de la latence des E/S et conviennent parfaitement aux volumes sauvegardés. SSD Vous pouvez maintenir un niveau élevé IOPS tout en réduisant la latence en maintenant une faible longueur de file d'attente et un nombre élevé de files d'attente IOPS disponibles pour le volume. Le fait d'acheminer constamment un volume supérieur IOPS à ce qui est disponible peut entraîner une augmentation de la latence des E/S.

Les applications gourmandes en débit sont moins sensibles à l'augmentation de la latence des E/S et conviennent parfaitement aux volumes sauvegardés. HDD Vous pouvez maintenir un débit élevé vers les volumes HDD sauvegardés en maintenant une longueur de file d'attente élevée lors de l'exécution d'E/S séquentielles volumineuses.

Taille des I/O et limites de débit par volume

Pour les volumes SSD sauvegardés, si la taille de vos E/S est très importante, vous risquez de rencontrer un nombre inférieur à IOPS celui que vous avez provisionné car vous atteignez la limite de débit du volume. Par exemple, un gp2 volume inférieur à 1 000 GiB avec des crédits de rafale disponibles a une IOPS limite de 3 000 et une limite de débit de 250 Mbits/s. Si vous utilisez une taille d'E/S de 256 KiB, votre volume atteint sa limite de débit à 1 000 IOPS (1 000 x 256 KiB = 250 MiB). Pour des tailles d'E/S plus petites (telles que 16 KiB), ce même volume peut en supporter 3 000 IOPS car le débit est bien inférieur à 250 MiB/s. (Ces exemples supposent que l’I/O de votre volume n’atteint pas les limites de débit de l’instance.) Pour plus d'informations sur les limites de débit pour chaque type de EBS volume, consultezTypes de EBS volumes Amazon.

Pour les opérations d'E/S de moindre envergure, vous pouvez voir une higher-than-provisioned IOPS valeur mesurée depuis l'intérieur de votre instance. Cela se produit lorsque le système d'exploitation de l'instance fusionne de petites opérations d'E/S en une opération plus importante avant de les transmettre à Amazon. EBS

Si votre charge de travail utilise des E/S séquentielles sur HDD -backed st1 et sur sc1 des volumes, vous risquez de rencontrer un nombre plus élevé que prévu d'IOPSE/S mesuré depuis votre instance. Cela se produit lorsque le système d’exploitation de l’instance fusionne des I/O séquentielles et les comptabilise dans des unités de 1 024 Kio. Si votre charge de travail utilise des I/O de petite taille ou aléatoires, vous risquez d’obtenir un débit moins élevé que prévu. Cela est dû au fait que nous comptons chaque E/S aléatoire et non séquentielle dans le IOPS décompte total, ce qui peut vous amener à atteindre la IOPS limite du volume plus tôt que prévu.

Quel que soit EBS le type de volume, si vous n'obtenez pas le débit IOPS ou le débit attendus dans votre configuration, assurez-vous que la bande passante de votre EC2 instance n'est pas le facteur limitant. Vous devez toujours utiliser une instance EBS optimisée de génération actuelle (ou une instance qui inclut une connectivité réseau de 10 Gbit/s) pour des performances optimales. Une autre raison possible pour laquelle vous ne recevez pas le IOPS résultat attendu est que vous n'acheminez pas suffisamment d'E/S vers les EBS volumes.

Surveillez les caractéristiques des E/S à l'aide de CloudWatch

Vous pouvez surveiller ces caractéristiques d'E/S à l'aide des métriques de volume de chaque CloudWatch volume. Les métriques importantes à prendre en compte sont les suivantes :

  • VolumeStalledIOCheck

  • BurstBalance

  • VolumeReadBytes | VolumeWriteBytes

  • VolumeReadOps | VolumeWriteOps

  • VolumeQueueLength

VolumeStalledIOChecksurveille l'état de vos EBS volumes afin de déterminer à quel moment ils sont altérés. La métrique est une valeur binaire qui renvoie un statut 0 (réussite) ou 1 (échec) selon que le EBS volume peut ou non effectuer les opérations d'E/S. Cette vérification détecte les problèmes sous-jacents liés à l'EBSinfrastructure Amazon, tels que les suivants :

  • Problèmes matériels ou logiciels sur les sous-systèmes de stockage sous-jacents aux volumes EBS

  • Problèmes matériels sur l'hôte physique qui ont un impact sur l'accessibilité des EBS volumes depuis votre instance EC2

  • Problèmes de connectivité entre l'instance et les EBS volumes

Si la VolumeStalledIOCheck métrique échoue, vous pouvez soit attendre AWS que le problème soit résolu, soit prendre des mesures, telles que le remplacement du volume concerné ou l'arrêt et le redémarrage de l'instance à laquelle le volume est attaché. Dans la plupart des cas, lorsque cette métrique EBS échoue, elle diagnostique et restaure automatiquement votre volume en quelques minutes. Vous pouvez utiliser l'action Pause I/O AWS Fault Injection Service pour exécuter des expériences contrôlées afin de tester votre architecture et votre surveillance sur la base de cette métrique afin d'améliorer votre résilience face aux défaillances de stockage.

Vous pouvez mesurer la latence des E/S du EBS stockage Amazon à l'aide de VolumeReadOpsVolumeWriteOps,VolumeTotalReadTime, etVolumeTotalWriteTime. Vous pouvez utiliser la formule suivante pour surveiller la latence d’E/S moyenne de votre volume :

Average I/O latency in ms/op = (VolumeTotalReadTime + VolumeTotalWriteTime) / (VolumeReadOps + VolumeWriteOps)

Si la latence de vos E/S est supérieure à ce dont vous avez besoin, vérifiez votre lecteur IOPS et assurez-vous que votre application n'essaie pas de le faire au-delà de ce IOPS que vous avez fourni. Vous pouvez utiliser la formule suivante pour surveiller la IOPS moyenne de votre volume :

Estimated average IOPS in ops/s = (Sum(VolumeReadOps) + Sum(VolumeWriteOps)) / (Period - Sum(VolumeIdleTime))

Si votre application nécessite un nombre supérieur à ce IOPS que votre volume peut fournir, vous devez envisager d'utiliser l'une des solutions suivantes :

  • Un gp3io2, ou un io1 volume provisionné avec une quantité suffisante pour IOPS atteindre la latence requise

  • Un gp2 volume plus important qui fournit des IOPS performances de base suffisantes

HDD-backed st1 et les sc1 volumes sont conçus pour optimiser les performances avec les charges de travail qui tirent parti de la taille d'E/S maximale de 1 024 KiB. Pour déterminer la taille d’I/O moyenne de votre volume, divisez VolumeWriteBytes par VolumeWriteOps. Le même calcul s’applique pour les opérations de lecture. Si la taille d’I/O moyenne est inférieure à 64 Kio, vous devriez pouvoir améliorer les performances en augmentant la taille des opérations d’I/O envoyées à un volume st1 ou sc1.

Note

Si la taille moyenne d’I/O atteint 44 Kio ou s’en rapproche, il est possible que vous utilisiez une instance ou un noyau qui ne prend pas en charge les descripteurs indirects. Tous les noyaux Linux version 3.8 et supérieures les prennent en charge, ainsi que toute instance de la génération actuelle.

BurstBalance affiche l’équilibre du compartiment en rafales des volumes gp2, st1 et sc1 sous forme de pourcentage du solde restant. Lorsque votre compartiment en rafales est épuisé, le I/O du volume (pour volumes gp2) ou le débit de volume (pour les volumes st1 et sc1) est limité au niveau de référence. Vérifiez la valeur BurstBalance pour déterminer si votre volume est limité pour cette raison. Pour une liste complète des EBS métriques Amazon disponibles, consultez la section CloudWatch Métriques Amazon pour Amazon EBS et les EBSmétriques Amazon pour les instances basées sur Nitro.

Ressources connexes

Pour plus d'informations sur les caractéristiques EBS d'Amazon I/O, consultez la présentation re:Invent suivante : Amazon EBS : Designing for Performance.