Cette rubrique explique comment utiliser l’outil Flexible I/O Tester (FIO) sous Linux pour tester le débit et le nombre d’opérations d’entrée/sortie par seconde (IOPS) d’un système de fichiers Cloud Parallel File Storage (CPFS).
Prérequis
Vous avez créé un système de fichiers CPFS et vous l’avez monté sur une instance ECS.
L’instance ECS utilisée pour le test dispose de ressources CPU suffisantes (8 cœurs ou plus) et d’une bande passante interne adéquate.
Contexte
Utilisez l’outil FIO pour évaluer les performances de votre système de fichiers CPFS. Les résultats des tests varient selon les outils et ne reflètent pas nécessairement les performances réelles en production. Les métriques présentées dans cette rubrique proviennent de tests exécutés avec l’outil FIO sous Linux. Elles servent de référence pour le produit Cloud Parallel File Storage.
Procédure
Connectez-vous à l’instance ECS. Pour plus d’informations, consultez la rubrique Méthodes de connexion aux instances ECS.
-
Installez l’outil FIO. Si FIO est déjà installé, ignorez cette étape.
Système d’exploitation
Commande d’installation
CentOS
sudo yum install fioRedhat
Alibaba Cloud Linux
Ubuntu
Exécutez les commandes d’installation suivantes dans l’ordre :
sudo apt-get updatesudo apt-get install fio
Debian
-
Exécutez les commandes de test de performance.
-
IOPS en écriture aléatoire :
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randwrite -bs=4k -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Write_Testing -
IOPS en lecture aléatoire :
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randread -bs=4k -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Read_Testing -
Débit en écriture séquentielle :
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=write -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Seq_Write_Testing -
Débit en lecture séquentielle :
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=read -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Seq_Read_Testing -
Débit en écriture aléatoire :
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randwrite -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Write_Testing -
Débit en lecture aléatoire :
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randread -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Read_Testing
-
Description des paramètres FIO
Le tableau suivant décrit les paramètres FIO utilisés dans les commandes de test.
Paramètre | Description |
direct | Indique s’il faut utiliser les E/S directes. Valeur par défaut : 1.
|
iodepth | Spécifie la profondeur de la file d’attente des E/S pour le test. Par exemple, |
rw | Définit la politique de lecture/écriture pour le test. Vous pouvez définir ce paramètre sur l’une des valeurs suivantes :
|
ioengine | Spécifie le moteur d’E/S utilisé par FIO pendant le test. Le moteur libaio est généralement utilisé, car il correspond aux modèles d’application courants. Pour plus d’options, consultez la documentation officielle de FIO. |
bs | Indique la taille de bloc pour chaque unité d’E/S. Valeur par défaut : 4 Kio. Vous pouvez spécifier des valeurs distinctes pour les opérations de lecture et d’écriture au format lecture,écriture. Vous pouvez laisser l’une des valeurs vide pour utiliser la valeur par défaut. |
size | Spécifie la taille du fichier de test. FIO lit ou écrit la totalité de la taille de fichier spécifiée avant l’arrêt du test, sauf si d’autres options telles que runtime limitent l’exécution. Si vous ne spécifiez pas ce paramètre, FIO utilise la taille complète du fichier ou du périphérique donné. Vous pouvez également spécifier la taille sous forme de pourcentage, de 1 à 100. Par exemple, si vous définissez size=20 %, FIO utilise 20 % de la taille totale du fichier ou du périphérique donné. |
numjobs | Indique le nombre de threads simultanés pour le test. Dans cet exemple, la valeur est 256. |
runtime | Spécifie la durée du test, c’est-à-dire le temps d’exécution de FIO. Si ce paramètre n’est pas spécifié, FIO lit ou écrit en continu la totalité du fichier indiqué par le paramètre size, en utilisant la valeur du paramètre bs comme taille de bloc. |
group_reporting | Définit le mode d’affichage des résultats du test. Si vous spécifiez ce paramètre, les résultats du test agrègent les statistiques pour chaque processus au lieu de rapporter les statistiques pour chaque tâche séparément. |
directory | Indique le chemin de montage du système de fichiers à tester. Dans cet exemple, le chemin est |
name | Spécifie le nom de la tâche de test. Vous pouvez lui attribuer n’importe quel nom. Par exemple, Rand_Write_Testing est utilisé dans cette rubrique. |
Pour plus d’informations sur ces paramètres, consultez la page de manuel FIO.