Comment Amazon EBS calcule-t-il la taille d'E/S optimale que je dois utiliser pour améliorer les performances de mon volume gp2 ou io1 ?

Dernière mise à jour : 08/06/2020

Je souhaite optimiser le débit de mon volume Amazon Elastic Block Store (Amazon EBS) gp2 ou io1. Comment Amazon EBS calcule-t-il la taille d'E/S que je dois utiliser pour améliorer les performances ?

Résolution

Pour les volumes EBS gp2 et io1, Amazon EBS calcule les performances en termes d'entrée/sortie par seconde (IOPS). Les volumes gp2 et io1 peuvent traiter une E/S maximale de 256 Kio.

La taille d'une opération d'E/S détermine le débit que le volume EBS fournit. Amazon EBS calcule le débit en appliquant l'équation suivante : Débit = Nombre d'IOPS x taille par opération d'E/S.

La taille par opération d'E/S varie en fonction du type de volume.

  • volumes gp2
    IOPS max. = 16 000
    Débit maximal = 250 Mio
  • volumes io1
    IOPS max. = 64 000
    Débit maximal = 1 000 Mio

Remarque : Amazon EBS garantit un débit maximal de 1 000 Mio/s uniquement sur les instances Nitro. Les autres familles d'instances garantissent jusqu'à 500 Mio/s. Un volume io1 plus ancien peut ne pas bénéficier de performances complètes, sauf si vous exécutez une action ModifyVolume.

Amazon EBS calcule la taille d'E/S optimale en appliquant l'équation suivante : débit/nombre d'IOPS = taille d'E/S optimale.

  • Taille d'E/S optimale du volume gp2 : 250 Mio x 1 024/16 000 = 16 Kio
  • Taille d'E/S optimale pour le volume io1 : 1 000 Mio x 1 024/64 000 = 16 Kio

Amazon EBS fusionne les opérations d'E/S séquentielles plus petites d’au moins 32 Kio pour former une seule E/S de 256 Kio avant le traitement. La fusion d'opérations d'E/S séquentielles plus petites pour former des opérations d'E/S plus grandes et uniques augmente le débit.

Par exemple, si l'application effectue de petites opérations d'E/S de 32 Kio :

  • Opérations séquentielles : Amazon EBS fusionne les opérations séquentielles (physiquement contiguës) dans la taille d'E/S maximale de 256 Kio. Dans ce scénario, Amazon EBS compte une seule IOP pour effectuer 8 opérations d'E/S soumises par le système d'exploitation.
  • Opérations aléatoires : Amazon EBS compte séparément les opérations d'E/S aléatoires. Une seule opération d'E/S aléatoire de 32 Kio compte comme 1 IOPS. Dans ce scénario, Amazon EBS compte 8 opérations d'E/S aléatoires de 32 Kio comme 8 opérations d'E/S par seconde soumises par le système d'exploitation.

Comme Amazon EBS tente de fusionner les opérations d'E/S plus petites dans une plus grande qui utilise plus de bande passante d'E/S, vous pouvez atteindre la limite de débit avant le nombre maximal d'IOPS. Pour éviter cette situation, les opérations d'E/S de votre application doivent être suffisamment aléatoires pour qu'Amazon EBS les compte comme une seule IOP de 16 Kio.

Amazon EBS divise les opérations d'E/S supérieures au maximum 256 Kio en opérations plus petites. Par exemple, si la taille d'E/S est de 500 Kio, Amazon EBS divise l'opération en 2 IOPS. La première est de 256 Kio, et la seconde est de 244 Kio.

Remarque : les instances ou les noyaux qui ne prennent pas en charge les descripteurs indirects ont une taille d'E/S moyenne égale ou proche de 44 Kio. Le noyau Linux 3.8 et les versions antérieures ne prennent pas en charge les descripteurs indirects. Par conséquent, votre taille d'E/S peut être limitée à 44 Kio.