Agence web » Actualités du digital » À quelle vitesse sont vos volumes AWS EBS?

À quelle vitesse sont vos volumes AWS EBS?

La vitesse du disque est un élément important de la mesure des performances d'un serveur. AWS dispose de nombreux types de volumes EBS différents et utilise un modèle de bucket rafale, similaire aux instances T2, pour déterminer la vitesse globale de votre disque.

La plupart des charges de travail du serveur incluent probablement une sorte de mise en cache de la mémoire, donc si vous avez beaucoup de RAM, la vitesse de votre disque peut ne pas avoir beaucoup d'importance; une fois qu'un fichier est lu, il peut rester en mémoire pendant un certain temps. Mais pour les charges de travail lourdes en écriture, la vitesse du disque commence à devenir le facteur limitant et peut faire ou défaire les performances de votre serveur.

Explication des performances IOPS et SSD

AWS répertorie et mesure la vitesse SSD à l'aide des opérations d'entrée-sortie par seconde (IOPS). Il s'agit principalement d'une mesure de la vitesse de lecture et d'écriture aléatoire 4K de l'appareil.

Les disques SSD fonctionnent différemment sous différentes charges de travail, il existe donc plusieurs façons de mesurer leur vitesse. La première est la vitesse de lecture et d'écriture séquentielle, qui mesure leur vitesse de lecture d'un gros fichier sur le disque. La vitesse importe, en particulier lorsque vous travaillez avec des données volumineuses, mais c'est le scénario idéal, et dans le monde réel, les SSD doivent généralement extraire des données de plusieurs emplacements à la fois.

Une meilleure mesure est une performance aléatoire. Cette référence lit et écrit des fichiers dans des blocs de 4 096 octets à des emplacements aléatoires, d'où le nom «4K aléatoire». Il imite plus précisément la charge réelle que le SSD peut rencontrer.

Les repères aléatoires peuvent varier en fonction de la profondeur de la file d'attente – une mesure de la quantité de disque SSD actuellement à traiter. Lorsque le SSD est interrogé pour un tas de fichiers, la profondeur de la file d'attente est élevée, ce qui accélère les performances. Mais les performances de base sont mesurées à la profondeur de file d'attente 1, ce qui semble être le niveau auquel AWS mesure leurs SSD.

Les IOPS sont une mesure du nombre d'opérations réelles en cours. La formule pour trouver les IOPS à partir de Mo / s est la suivante:

IOPS = (MBps / KB Per Operation) * 1024

Et comme nous lisons 4 Ko à la fois, la formule devient:

IOPS = MBps * 256

Le SSD de bureau dans la capture d'écran ci-dessus serait supérieur à 13 000 IOPS, ce qui est assez bon pour un SSD NVME 2 To.

Le modèle Burst-Bucket

La principale chose qui complique les volumes AWS EBS est les performances de rafale. Cela fonctionne de manière très similaire au fonctionnement des instances T2 / T3: lorsque le disque est inactif, il accumule des crédits d'E / S à un taux déterminé par la taille du volume.

Ces crédits entrent dans un «seau», qui les recueille jusqu'à un maximum de 5,4 millions, assez pour exploser à pleine performance pendant 30 minutes. Le compartiment démarre complètement pour permettre un amorçage rapide des applications et le démarrage des instances.

Les crédits sont épuisés du seau pour épuiser les performances. gp2 a une performance maximale de 3 000 IOPS, vous ne pouvez donc en drainer que 3 000 par seconde.

Les volumes gagnent des crédits d'E / S à un taux de 3 par Go par seconde. Cela signifie que si vous avez un volume supérieur à 1 To, votre compartiment sera toujours plein et vous n'aurez pas à vous soucier des performances de rafale. Tout ce qui est inférieur à cela, et vous êtes limité aux performances de base en fonction du nombre de crédits que vous gagnez.

Si vous avez besoin de performances plus soutenues, vous pouvez louer un volume plus important ou utiliser un volume IOPS provisionné (io1). Bien que ceux-ci soient plus chers par Go, ils vous permettent d'acheter directement des IOPS. Vous pouvez acheter entre 100 et 64 000 IOPS, à un taux de 0,065 $ par IOPS provisionné. Ce n'est vraiment rentable que si vous voulez plus de 3000 IOPS. Pour tout ce qui est inférieur à cela, vous paierez effectivement le double du prix du volume. Par exemple, si vous avez besoin d'un volume de 3 000 IOPS 64 Go, vous pouvez simplement provisionner un 1 To gp2 volume pour la moitié du prix. Mais si vous voulez la vitesse supplémentaire, vous pouvez la payer.

Performances du disque dur (st1 et sc1)

Les volumes EBS basés sur le disque dur d'AWS utilisent également un modèle de rafale, mais les disques durs fonctionnent un peu différemment des SSD, il n'est donc pas mesuré en IOPS. Étant donné qu'un disque dur utilise une tête de disque en rotation, les vitesses de lecture et d'écriture seront fixes. Faire des lectures et des écritures aléatoires ralentira considérablement cela (l'un des principaux inconvénients des disques durs). AWS utilise ici des vitesses de lecture séquentielles.

Pour st1, la vitesse de base augmente de 40 Mio / s par To, à partir de 20 pour la taille de volume minimale de 500 Go.

La vitesse de rafale augmente de 250 Mio / s par To, jusqu'à un maximum de 500 Mio / s. Pour les volumes supérieurs à 12 To, vous pouvez exploser à la vitesse maximale 100% du temps. Rien de moins, et vous êtes limité par votre solde de crédit éclaté.

Pour sc1, la vitesse de base augmente de 12 Mio / s par To, à partir de 6 pour la taille de volume minimale de 500 Go. Cela le rend beaucoup plus lent et n'atteindra jamais 100% de la capacité d'éclatement (mais c'est moins cher).

La vitesse de rafale est également limitée et augmente de 80 Mio / s par To, jusqu'à un maximum de 250 Mio / s. Cela équivaut à environ 8 000 IOPS, mais là encore, il s'agit probablement de la vitesse séquentielle, et vous ne verrez pas de vitesses aléatoires aussi élevées sur un disque dur.

Comment trouver votre vitesse de disque réelle

Vous pouvez utiliser un outil comme dd cependant, pour mesurer la vitesse d’écriture séquentielle, cela ne sollicite pas suffisamment le disque pour être utile et n’indique aucun cas d’utilisation réelle.

Pour obtenir quelque chose de mieux, vous devez installer un outil d'analyse comparative de disque appelé fio depuis le gestionnaire de paquets de votre distribution:

sudo apt-get install fio

Ensuite, exécutez-le avec la commande suivante:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=250M --readwrite=randrw --rwmixread=80

Il créera un fichier de 250 Mo et effectuera des tests de lecture et d'écriture aléatoires à un ratio de 80% de lectures, 20% d'écritures, vous donnant une vue beaucoup plus précise de la performance réelle de votre disque.

Un test rapide avec un fichier de 25 Mo montre les avantages du modèle de compartiment rafale d'AWS. Le volume gp2 est capable d'éclater à une vitesse rapide pendant un peu pour gérer le transfert en douceur. Avec une si petite taille, le SSD est capable d'éclater efficacement au-delà de la limite de 3000 IOPS, mais seulement pendant une seconde.

Un test plus long avec un fichier de 250 Mo donne un meilleur aperçu de la performance du SSD sous des charges plus importantes. Dans ce cas, le test dure plus d'une seconde, la vitesse est donc limitée par la vitesse des IOPS en rafale, qui atteint 2 600 IOPS.

Bien sûr, si nous devions laisser ce test s'exécuter pendant plus de 30 minutes, le volume gp2 manquerait de crédits et ralentirait à seulement 24 IOPS pour un volume de 8 Go. Mais vous ne rencontrerez probablement pas de charges qui utiliseront 100% de votre disque, et si vous le faites, vous pouvez toujours utiliser un disque plus gros avec des performances garanties, ou provisionner directement des IOPS.