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 Caractéristiques et surveillance d'Amazon EBS
Sur une configuration de volume donnée, certaines I/O caractéristiques déterminent le comportement en matière de performances de vos volumes EBS.
-
SSD-backed les volumes, le SSD à usage général (
gp2etgp3) et le SSD IOPS provisionné (io1etio2), offrent des performances constantes, qu'une I/O opération soit aléatoire ou séquentielle. -
HDD-backed les volumes, le disque dur à débit optimisé (
st1) et le disque dur froid (sc1), offrent des performances optimales uniquement lorsque les I/O opérations sont volumineuses et séquentielles.
Pour comprendre comment les volumes SSD et HDD fonctionneront dans votre application, il est important de connaître le lien entre la demande sur le volume, la quantité d'IOPS disponible, le temps nécessaire à l'exécution d'une I/O opération et les limites de débit du volume.
Rubriques
IOPS
Les IOPS sont une unité de mesure représentant les input/output opérations 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 un seul I/O. I/O la taille est plafonnée à 256 Ko pour les volumes SSD et à 1 024 Ko pour les volumes de disque dur, car les volumes SSD gèrent les volumes petits ou aléatoires I/O beaucoup plus efficacement que les volumes de disque dur.
Lorsque de petites I/O opérations sont physiquement séquentielles, Amazon EBS tente de les fusionner en une seule I/O opération jusqu'à la taille maximale I/O . De même, lorsque les I/O opérations dépassent la I/O taille maximale, Amazon EBS tente de les diviser en I/O opérations plus petites. Le tableau suivant montre quelques exemples.
| Type de volume | I/O Taille maximale | I/O opérations depuis votre application | Nombre d’IOPS | Remarques |
|---|---|---|---|---|
| SSD | 256 Kio | I/O Fonctionnement 1 x 1024 KiB | 4 (1 024÷256=4) | Amazon EBS divise l'opération de 1 024 KiB en quatre I/O opérations plus petites de 256 KiB. |
| 8 opérations séquentielles de 32 KiB I/O | 1 (8x32=256) | Amazon EBS fusionne les huit I/O opérations séquentielles de 32 KiB en une seule opération de 256 KiB. | ||
| 8 I/O opérations aléatoires de 32 Kio | 8 | Amazon EBS comptabilise les I/O opérations aléatoires séparément. | ||
| HDD | 1 024 KiB | I/O Fonctionnement 1 x 1024 KiB | 1 | L' I/O opération est déjà égale à la I/O taille maximale. Elle n’est ni fusionnée ni divisée. |
| 8 opérations séquentielles de 128 KiB I/O | 1 (8x128=1 024) | Amazon EBS fusionne les huit opérations séquentielles de 128 KiB en une seule I/O opération de 1 024 KiB. I/O | ||
| 8 I/O opérations aléatoires de 32 Kio | 8 | Amazon EBS comptabilise les I/O opérations aléatoires séparément. |
Par conséquent, lorsque vous créez un SSD-backed volume supportant 3 000 IOPS (soit en provisionnant un io1 io2 volume de 3 000 IOPS, soit en dimensionnant un gp2 volume à 1 000 GiB, soit en utilisant un gp3 volume) et que vous l'associez à une EBS-optimized instance capable de fournir une bande passante suffisante, vous pouvez transférer jusqu'à 3 000 I/Os données par seconde, le débit étant déterminé par la taille. I/O
Latence et longueur de file d’attente d’un volume
La longueur de la file d'attente des volumes est le nombre de I/O demandes en attente pour un appareil. La latence est le temps client réel de bout en bout d'une I/O opération, c'est-à-dire le temps écoulé entre l'envoi d'un message I/O à EBS et la réception d'un accusé de réception de la part d'EBS indiquant que la I/O lecture ou l'écriture est terminée. La longueur de la file d'attente doit être correctement calibrée en fonction de I/O la taille et de la latence pour éviter de créer des goulots d'étranglement sur le système d'exploitation client ou sur la liaison réseau vers EBS.
La longueur de la file d’attente optimale varie en fonction des charges de travail, selon la sensibilité de votre application à la latence et à l’IOPS. Si votre charge de travail ne fournit pas suffisamment de I/O demandes pour utiliser pleinement les performances disponibles pour votre volume EBS, il est possible que votre volume ne fournisse pas les IOPS ou le débit que vous avez provisionnés.
Transaction-intensive les applications sont sensibles à l'augmentation de I/O la latence et sont bien adaptées aux SSD-backed volumes. Vous pouvez conserver des IOPS élevées et une latence faible grâce à une longueur de file d’attente moyenne réduite et à un nombre élevé d’IOPS disponibles pour le volume. L'augmentation constante d'un nombre d'IOPS supérieur à celui disponible sur un volume peut entraîner une augmentation de la I/O latence. Pour une cohérence maximale, un volume doit maintenir une profondeur de file d'attente moyenne (arrondie au nombre entier le plus proche) de 1 pour 1 000 IOPS provisionnées en une minute. Par exemple, pour un volume provisionné avec 3 000 IOPS, la profondeur moyenne de la file d'attente doit être de 3.
Throughput-intensive les applications sont moins sensibles à l'augmentation de la I/O latence et sont bien adaptées aux HDD-backed volumes. Vous pouvez maintenir un débit élevé pour les HDD-backed volumes en maintenant une longueur de file d'attente élevée lorsque vous effectuez des opérations séquentielles volumineuses I/O.
I/O limites de débit en termes de taille et de volume
En ce qui concerne les SSD-backed volumes, si votre I/O taille est très importante, le nombre d'IOPS peut être inférieur à 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 limite d'IOPS de 3 000 et une limite de débit de 250. MiB/s Si vous utilisez une I/O taille de 256 KiB, votre volume atteint sa limite de débit à 1 000 IOPS (1 000 x 256 KiB = 250 MiB). Pour les plus petites I/O tailles (telles que 16 KiB), ce même volume peut supporter 3 000 IOPS car le débit est bien inférieur à 250 MiB/s. (Ces exemples supposent que le volume I/O 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 volume EBS, consultez Types de volume Amazon EBS.
Pour les petites I/O opérations, vous pouvez constater une valeur IOPS supérieure à celle provisionnée, mesurée depuis l'intérieur de votre instance. Cela se produit lorsque le système d'exploitation de l'instance fusionne de petites I/O opérations en une opération plus importante avant de les transmettre à Amazon EBS.
Si votre charge de travail utilise des entrées HDD-backed st1 et I/Os des sc1 volumes séquentiels, vous risquez de rencontrer un nombre d'IOPS plus élevé que prévu, mesuré depuis l'intérieur de votre instance. Cela se produit lorsque le système d'exploitation de l'instance fusionne les données séquentielles I/Os et les compte en 1 KiB-sized 024 unités. Si votre charge de travail est faible ou aléatoire I/Os, il se peut que le débit soit inférieur à ce que vous attendiez. En effet, chaque opération aléatoire et non séquentielle est prise en I/O compte dans le nombre total d'IOPS, ce qui peut vous faire atteindre la limite d'IOPS du volume plus tôt que prévu.
Quel que soit le type de volume EBS, si vous n'obtenez pas les IOPS ou le débit que vous attendez dans votre configuration, assurez-vous que la bande passante de votre instance EC2 n'est pas le facteur limitant. Vous devez toujours utiliser une instance de génération actuelle (ou une EBS-optimized instance qui inclut 10 connexions Gb/s réseau) pour des performances optimales. Une autre raison possible pour laquelle vous n'obtenez pas les IOPS attendues est que vous ne conduisez pas suffisamment I/O vers les volumes EBS.
Surveillez les I/O caractéristiques à l'aide CloudWatch
Vous pouvez surveiller ces I/O caractéristiques à l'aide des mesures de CloudWatch volume de chaque volume.
Moniteur pour les personnes bloquées I/O
VolumeStalledIOCheck surveille le statut de vos volumes EBS afin de déterminer à quel moment ils sont dégradés. La métrique est une valeur binaire qui renvoie un statut 0 (réussite) ou 1 (échec) selon que le volume EBS peut effectuer des I/O opérations ou non.
Si la VolumeStalledIOCheck métrique échoue, vous pouvez soit AWS attendre que le problème soit résolu, soit prendre des mesures, telles que remplacer le volume concerné ou arrêter et redémarrer l'instance à laquelle le volume est attaché. Dans la plupart des cas, lorsque cette métrique échoue, EBS diagnostique et restaure automatiquement votre volume en quelques minutes. Vous pouvez utiliser l' I/Oaction Pause AWS Fault Injection Service pour exécuter des expériences contrôlées afin de tester votre architecture et votre surveillance en fonction de cette métrique afin d'améliorer votre résilience aux défaillances de stockage.
Surveiller I/O la latence d'un volume
Vous pouvez surveiller la latence moyenne des opérations de lecture et d'écriture pour un volume Amazon EBS à l'aide des VolumeAvgWriteLatency métriques VolumeAvgReadLatency et, respectivement. Vous pouvez utiliser l'action d'injection de latence 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 à la dégradation des performances de stockage.
Si votre I/O latence est supérieure à ce dont vous avez besoin, assurez-vous que votre application n'essaie pas de générer plus d'IOPS ou de débit que ce que vous avez configuré pour votre volume. Vous pouvez utiliser les VolumeAvgThroughput métriques VolumeAvgIOPS et pour surveiller la moyenne des IOPS et du débit acheminés vers votre volume en une minute, puis les comparer aux IOPS et au débit provisionnés du volume. Si le volume n'entraîne aucune opération pendant la minute, les métriques indiqueront une valeur de zéro (0). Si des rafales d'IOPS ou de débit élevés se produisent pendant une durée inférieure à l'intervalle d'une minute, le volume subit des micro-rafales, mais les mesures moyennes d'IOPS et de débit peuvent indiquer que vous générez des performances inférieures aux limites d'IOPS ou de débit provisionnées de votre volume. Pour déterminer si votre volume connaît des pics de performances au cours d'une minute donnée, vous pouvez utiliser les VolumeThroughputExceededCheck indicateurs VolumeIOPSExceededCheck et. Vous pouvez surveiller ces indicateurs pour déterminer si votre charge de travail a constamment tenté de générer des IOPS ou un débit supérieur aux performances provisionnées de votre volume au cours d'une minute donnée. Si les IOPS pilotées pendant une seconde au cours de la minute dépassent systématiquement les performances IOPS provisionnées de votre volume, la VolumeIOPSExceededCheck métrique est renvoyée. 1 Si le débit piloté pendant une seconde au cours de la minute dépasse régulièrement les performances de débit provisionnées de votre volume, la VolumeThroughputExceededCheck métrique est 1 renvoyée. Si les IOPS et le débit pilotés se situent dans les limites des performances provisionnées de votre volume, les mesures sont renvoyées. 0
Si votre application a besoin d’un nombre d’IOPS supérieur à ce que votre volume peut fournir, envisagez d’utiliser l’une des options suivantes :
-
Un volume
gp3,io2, ouio1approvisionné avec suffisamment d’IOPS pour atteindre la latence requise -
Un volume
gp2plus important qui fournit des performances IOPS de base suffisantes
HDD-backed st1et les sc1 volumes sont conçus pour fonctionner au mieux avec des charges de travail qui tirent parti de la taille maximale I/O de 1 024 Ko. Pour déterminer la I/O taille moyenne de votre volume, divisez VolumeWriteBytes parVolumeWriteOps. Le même calcul s’applique pour les opérations de lecture. Si I/O la taille moyenne est inférieure à 64 Ko, l'augmentation de la taille I/O des opérations envoyées vers un sc1 volume st1 ou devrait améliorer les performances.
Surveillez l'équilibre des compartiments en rafale pour les volumes gp2, st1 et sc1
BurstBalance affiche l’équilibre du compartiment en rafales des volumes gp2, st1 et sc1 sous forme de pourcentage du solde restant. Lorsque votre compartiment de rafale est épuisé, le volume I/O (pour les gp2 volumes) ou le débit volumique (pour st1 et les sc1 volumes) 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 obtenir la liste complète des métriques Amazon EBS disponibles, consultez Statistiques CloudWatch Amazon pour Amazon EBS la section Statistiques Amazon EBS pour Nitro-based les instances.
Surveillez les statistiques de I/O performance en temps réel
Vous pouvez accéder à des statistiques de performances détaillées en temps réel pour les volumes Amazon EBS attachés aux instances Nitro-based Amazon EC2.
Vous pouvez combiner ces statistiques pour calculer la latence moyenne et les IOPS, ou pour vérifier si les I/O opérations sont terminées. Vous pouvez également consulter la durée totale pendant laquelle votre application a dépassé les limites d'IOPS ou de débit provisionnées de votre volume EBS ou de l'instance attachée. En suivant l'évolution de ces statistiques au fil du temps, vous pouvez déterminer si vous devez augmenter vos IOPS provisionnées ou vos limites de débit pour optimiser les performances de votre application. Les statistiques de performances détaillées incluent également des histogrammes pour les I/O opérations de lecture et d'écriture, qui fournissent une distribution de votre I/O latence en gardant une trace du nombre total d' I/O opérations effectuées dans une bande de latence.
Pour de plus amples informations, veuillez consulter Statistiques de performances détaillées d'Amazon EBS.
Ressources connexes
Pour plus d'informations sur les I/O caractéristiques d'Amazon EBS, consultez la présentation re:Invent suivante : Amazon EBS : Designing for Performance.