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.
Analysez les EBS volumes Amazon
Vous pouvez tester les performances des EBS volumes Amazon en simulant les charges de travail d'E/S. Procédez comme suit :
-
Lancez une instance EBS optimisée.
-
Créez de nouveaux EBS volumes.
-
Attachez les volumes à votre instance EBS optimisée.
-
Configurez et installez le périphérique de stockage en mode bloc.
-
Installez un outil permettant de comparer les performances d’I/O.
-
Comparez les performances d’I/O de vos volumes.
-
Supprimez vos volumes et mettez l’instance hors service pour éviter de générer des frais.
Important
Certaines procédures entraînent la destruction des données existantes sur les EBS volumes que vous comparez. Les procédures de comparaison sont conçues pour être utilisées sur des volumes créés spécialement à des fins de tests, et pas sur des volumes de production.
Configurer votre instance
Pour optimiser les performances des EBS volumes, nous vous recommandons d'utiliser une instance EBS optimisée. EBS-les instances optimisées fournissent un débit dédié entre Amazon et EC2 AmazonEBS, avec instance. EBS-les instances optimisées fournissent une bande passante dédiée entre Amazon EC2 et AmazonEBS, les spécifications dépendant du type d'instance.
Pour créer une instance EBS optimisée, choisissez Launch en tant qu'instance EBS optimisée lorsque vous lancez l'instance à l'aide de la EC2 console Amazon, ou spécifiez-le --ebs-optimized lorsque vous utilisez la ligne de commande. Assurez-vous de sélectionner un type d'instance compatible avec cette option.
Configuration de volumes provisionnés IOPS SSD ou à usage SSD général
Pour créer des volumes provisionnés IOPS SSD (io1
etio2
) ou à usage général SSD (gp2
etgp3
) à l'aide de la EC2 console Amazon, pour le type de volume, choisissez Provisioned IOPS SSD (io1), Provisioned IOPS SSD (io2), General Purpose (gp2) ou General Purpose SSD (gp3). SSD Sur la ligne de commande, spécifiez io1
, io2
, gp2
ou gp3
pour le paramètre --volume-type. Pour les gp3
volumes io1
io2
, spécifiez le nombre d'opérations d'E/S par seconde (IOPS) pour le --iops paramètre. Pour plus d’informations, consultez Types de EBS volumes Amazon et Création d'un EBS volume Amazon.
(Instances Linux uniquement) Pour les exemples de tests, nous vous recommandons de créer une matrice RAID 0 avec 6 volumes, ce qui offre un haut niveau de performance. Comme vous êtes facturé en gigaoctets provisionnés (et en fonction du nombre de gigaoctets provisionnés IOPS pour les volumes io1, io2 et gp3), et non du nombre de volumes, la création de plusieurs volumes plus petits et leur utilisation pour créer un ensemble de bandes n'entraînent aucun coût supplémentaire. Si vous utilisez Oracle Orion pour comparer vos volumes, il peut simuler le découpage de la même manière qu'OracleASM. Nous vous recommandons donc de laisser Orion effectuer le découpage. Si vous utilisez un outil de comparaison différent, vous devez effectuer vous-même l’agrégation des volumes par bandes.
Pour plus d'informations sur la création d'un tableau RAID 0, consultezCréation d'un tableau RAID 0.
Configuration de volumes optimisés pour le débit HDD (st1
) ou de volumes froids HDD (sc1
)
Pour créer un st1
volume, choisissez Throughput Optimized HDD lors de la création du volume à l'aide de la EC2 console Amazon, ou spécifiez-le --type st1
lorsque vous utilisez la ligne de commande. Pour créer un sc1
volume, choisissez Cold HDD lorsque vous créez le volume à l'aide de la EC2 console Amazon, ou spécifiez-le --type sc1
lorsque vous utilisez la ligne de commande. Pour plus d'informations sur la création de EBS volumes, consultezCréation d'un EBS volume Amazon. Pour plus d’informations sur la liaison de ces volumes à votre instance, consultez Associer un EBS volume Amazon à une EC2 instance Amazon.
(instances Linux uniquement) AWS fournit un JSON modèle à utiliser AWS CloudFormation qui simplifie cette procédure de configuration. Accédez au modèlest1
volumes. Le modèle crée une instance de la génération actuelle et un volume st1
de 2 Tio, et attache ce dernier à l’instance dans /dev/xvdf
.
(Instances Linux uniquement) Pour créer un HDD volume à l'aide du modèle
Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.
-
Sélectionnez Créer une pile.
-
Choisissez Upload a Template to Amazon S3 et sélectionnez le JSON modèle que vous avez obtenu précédemment.
-
Donnez à votre pile un nom tel que « ebs-perf-testing », puis sélectionnez un type d'instance (la valeur par défaut est r3.8xlarge) et une clé. SSH
-
Choisissez Suivant à deux reprises, puis sélectionnez Créer une pile.
-
Une fois que le statut de votre nouvelle pile est passé de CREATE_IN_ PROGRESS à COMPLETE, choisissez Outputs pour obtenir l'DNSentrée publique de votre nouvelle instance, à laquelle un
st1
volume de 2 TiB sera attaché. -
Connectez-vous SSH à votre nouvelle pile en tant qu'utilisateur
ec2-user
, avec le nom d'hôte obtenu à partir de l'DNSentrée de l'étape précédente. -
Passez à Installer les outils d’évaluation.
Installer les outils d’évaluation
Les tableaux suivants répertorient certains des outils que vous pouvez utiliser pour comparer les performances des EBS volumes.
Outil | Description |
---|---|
fio |
Pour comparer les performances d’I/O. (Notez que la commande fio a une dépendance sur Pour installer fio sur Amazon Linux, exécutez la commande suivante :
Pour installer fio sur Ubuntu, exécutez la commande suivante :
|
Pour calibrer les performances d’I/O des systèmes de stockage à utiliser avec les bases de données Oracle. |
Outil | Description |
---|---|
DiskSpd |
DiskSpd est un outil de performance du stockage développé par les équipes d'ingénierie Windows, Windows Server et Cloud Server Infrastructure de Microsoft. Il est disponible en téléchargement sur https://github.com/Microsoft/diskspd/releases Après avoir téléchargé le fichier exécutable Copiez le fichier Le code source de DiskSpd est hébergé sur GitHub : https://github.com/Microsoft/diskspd |
CrystalDiskMark |
CrystalDiskMark est un simple logiciel de test de disque. Il est disponible en téléchargement à l'adresse https://crystalmark. info/en/software/crystaldiskmark |
Ces outils de comparaison prennent en charge un large éventail de paramètres de test. Vous devez utiliser des commandes proches des charges de travail que vos volumes devront prendre en charge. Les commandes ci-dessous sont proposées à titre d’exemple pour vous permettre de débuter.
Choisir la longueur de la file d’attente d’un volume
Choisissez la meilleure longueur de file d’attente du volume en fonction de votre charge de travail et du type de volume.
Longueur de file d'attente sur les SSD volumes sauvegardés
Pour déterminer la longueur de file d'attente optimale pour votre charge de travail sur les volumes SSD sauvegardés, nous vous recommandons de cibler une longueur de file d'attente de 1 pour 1 000 IOPS disponibles (valeur de référence pour les SSD volumes à usage général et quantité provisionnée pour les volumes provisionnés IOPSSSD). Vous pouvez ensuite contrôler les performances de votre application et ajuster cette valeur en fonction des exigences de votre application.
L'augmentation de la longueur de la file d'attente est bénéfique jusqu'à ce que vous atteigniez la valeur provisionnéeIOPS, le débit ou la valeur de longueur de file d'attente système optimale, qui est actuellement définie sur 32. Par exemple, un volume dont 3 000 sont provisionnés IOPS doit viser une longueur de file d'attente de 3. Vous devez essayer d’augmenter ou de diminuer ces valeurs afin de déterminer ce qui fonctionne le mieux pour votre application.
Longueur de file d'attente sur les HDD volumes sauvegardés
Pour déterminer la longueur de file d'attente optimale pour votre charge de travail sur les volumes HDD sauvegardés, nous vous recommandons de cibler une longueur de file d'au moins 4 lors de l'exécution d'E/S séquentielles de 1 Mo. Vous pouvez ensuite contrôler les performances de votre application et ajuster cette valeur en fonction des exigences de votre application. Par exemple, un st1
volume de 2 TiB avec un débit en rafale de 500 respectivement. MiB/s and IOPS of 500 should target a queue length of 4, 8, or 16 while performing 1,024
KiB, 512 KiB, or 256 KiB sequential I/Os Vous devez essayer d’augmenter ou de diminuer ces valeurs afin de déterminer ce qui fonctionne le mieux pour votre application.
Désactivation des états « C-state »
Avant de procéder à des comparaisons, vous devez désactiver les états « C-state » du processeur. Les cœurs temporairement inactifs dans un environnement compatible CPU peuvent passer à l'état C pour économiser de l'énergie. Lorsque le cœur est appelé afin de reprendre le traitement, un certain laps de temps est nécessaire avant que le cœur soit à nouveau entièrement opérationnel. Cette latence peut interférer avec les routines de comparaison du processeur. Pour plus d'informations sur les états C et les types d'EC2instances qui les prennent en charge, consultez la section Contrôle de l'état du processeur pour votre EC2 instance.
Vous pouvez désactiver les états C sur Amazon Linux et CentOS comme suit : RHEL
Identifiez le nombre d’états « C-state ».
$
cpupower idle-info | grep "Number of idle states:"
Désactivez les états « C-state » de c1 à cN. Idéalement, l’état des cœurs doit être c0.
$
for i in `seq 1 $((N-1))`; do cpupower idle-set -d $i; done
Vous pouvez désactiver les états « C-state » sur un système Windows de la manière suivante :
-
Dans PowerShell, obtenez le schéma d'alimentation actif actuel.
$current_scheme = powercfg /getactivescheme
-
Obtenez le schéma d'alimentationGUID.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
-
Obtenez le réglage de puissanceGUID.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
-
Obtenez le sous-groupe de réglage de la GUID puissance.
(Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID
-
Désactivez les états « C-state » en paramétrant la valeur de l’index sur 1. La valeur 0 indique que les états « C-state » sont désactivés.
powercfg /setacvalueindex
<power_scheme_guid>
<power_setting_subgroup_guid>
<power_setting_guid>
1 -
Définissez le mode actif afin de garantir l’enregistrement des paramètres.
powercfg /setactive
<power_scheme_guid>
Effectuer la comparaison
Les procédures suivantes décrivent les commandes d'analyse comparative pour différents types de EBS volumes.
Exécutez les commandes suivantes sur une instance EBS optimisée avec des EBS volumes attachés. Si les EBS volumes ont été créés à partir de snapshots, veillez à les initialiser avant de procéder à l'analyse comparative. Pour de plus amples informations, veuillez consulter Initialisation des volumes Amazon EBS.
Astuce
Vous pouvez utiliser les histogrammes de latence d'E/S fournis par les statistiques de performances EBS détaillées pour comparer la distribution des performances d'E/S dans vos tests d'analyse comparative. Pour de plus amples informations, veuillez consulter Statistiques de performance EBS détaillées d'Amazon.
Lorsque vous avez terminé de tester vos volumes, consultez les rubriques suivantes pour obtenir de l'aide sur le nettoyage : Supprimer un EBS volume Amazon et Mettez fin à votre instance.
Comparaison des volumes provisionnés IOPS SSD et à usage SSD général
Exécutez fio sur le tableau RAID 0 que vous avez créé.
La commande suivante effectue des opérations d’écriture aléatoires 16 Ko.
$
sudo fio--directory=/mnt/
p_iops_vol0
--ioengine=psync--name
fio_test_file
--direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
La commande suivante effectue des opérations de lecture aléatoires 16 Ko.
$
sudo fio--directory=/mnt/
p_iops_vol0
--name
fio_test_file
--direct=1 --rw=randread --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
Pour plus d’informations sur l’interprétation des résultats, consultez le didacticiel Inspecting disk IO performance with fio
Exécutez DiskSpd sur le volume que vous avez créé.
La commande suivante exécute un test d’I/O aléatoire de 30 secondes à l’aide d’un fichier de test de 20 Go situé sur le lecteur C:
, avec un taux d’écriture de 25 % et de lecture de 75 %, ainsi qu’une taille de bloc de 8 Ko. Elle utilisera huit threads de travail, chacun avec quatre I/O exceptionnelles, et une valeur d’entropie d’écriture de 1 Go. Les résultats du test seront enregistrés dans un fichier texte appelé DiskSpeedResults.txt
. Ces paramètres simulent la OLTP charge de travail d'un SQL serveur.
diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt
Pour plus d'informations sur l'interprétation des résultats, consultez ce didacticiel : Inspection des performances d'E/S du disque avec D. iskSPd
Benchmark st1
et sc1
volumes (instances Linux)
Exécutez la commande fio sur votre volume st1
ou sc1
.
Note
Avant d’exécuter ces tests, définissez les I/O mises en mémoire tampon sur votre instance, comme indiqué dans Augmentez la lecture anticipée pour les charges de travail à haut débit et en lecture intense sur et (instances Linux uniquement) st1 sc1.
La commande suivante exécute des opérations de lecture séquentielle d’1 Mio sur un périphérique de stockage en mode bloc st1
attaché (par exemple, /dev/xvdf
) :
$
sudo fio--filename=/dev/
<device>
--direct=1 --rw=read
--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180
--name=fio_direct_read_test
La commande suivante exécute des opérations d’écriture séquentielle d’1 Mio sur un périphérique de stockage en mode bloc st1
attaché :
$
sudo fio--filename=/dev/
<device>
--direct=1 --rw=write
--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180
--name=fio_direct_write_test
Certaines charges de travail exécutent une combinaison de lectures séquentielles et d’écritures séquentielles dans différentes parties du périphérique de stockage en mode bloc. Pour évaluer une telle charge de travail, nous vous recommandons d’utiliser des tâches fio distinctes et simultanées pour les lectures et les écritures, et d’utiliser l’option fio offset_increment
pour cibler différents emplacements du périphérique de stockage en mode bloc pour chaque tâche.
L’exécution de cette charge de travail est un peu plus compliquée qu’une charge de travail d’écriture séquentielle ou de lecture séquentielle. Utilisez un éditeur de texte pour créer un fichier de tâche fio, appelé fio_rw_mix.cfg
dans cet exemple, contenant les éléments suivants :
[global] clocksource=clock_gettime randrepeat=0 runtime=180 [sequential-write] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/
<device>
do_verify=0 rw=write rwmixread=0 rwmixwrite=100 [sequential-read] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device>
do_verify=0 rw=read rwmixread=100 rwmixwrite=0 offset=100g
Ensuite, exécutez la commande suivante :
$
sudo fiofio_rw_mix.cfg
Pour plus d’informations sur l’interprétation des résultats, consultez le didacticiel Inspecting disk I/O performance with fio
Plusieurs tâches fio pour l’I/O directe, même en cas d’utilisation d’opérations de lecture ou d’écriture séquentielle, peuvent se traduire par un débit inférieur à celui attendu pour les volumes st1
et sc1
. Nous vous recommandons d’utiliser une tâche d’I/O directe et le paramètre iodepth
pour contrôler le nombre d’opérations d’I/O simultanées.