Exemples de commande FIO pour les tests de performances de Block Volume sur des instances Linux
Cette rubrique décrit des exemples de commande FIO que vous pouvez utiliser afin d'exécuter des tests de performances pour le service Oracle Cloud Infrastructure Block Volume sur des instances créées à partir d'images Linux.
Installation de FIO
Pour installer et configurer FIO sur vos instances avec des systèmes d'exploitation Linux, exécutez les commandes applicables à la version du système d'exploitation de votre instance.
Exécutez la commande suivante afin d'installer et de configurer FIO pour vos systèmes Oracle Linux ou CentOS .
- Oracle Autonomous Linux 8.x, Oracle Linux 8.x et Oracle Linux Cloud Developer 8 :
sudo dnf install fio -y
- Oracle Autonomous Linux 7.x, Oracle Linux 7.x, CentOS 7 et CentOS Stream 8 :
sudo yum install fio -y
Exécutez les commandes suivantes afin d'installer et de configurer FIO pour vos systèmes Ubuntu :
sudo apt-get update && sudo apt-get install fio -y
Cela s'applique à Ubuntu 20.04 et 18.04, et à Ubuntu Minimal 18.04.
Commandes FIO
Tests de performances d'E/S par seconde
Utilisez les exemples de commande FIO suivants pour tester les performances d'E/S par seconde. Vous pouvez exécuter les commandes directement ou créer un fichier de travail avec la commande, puis exécuter ce dernier.
Exécutez la commande suivante directement pour tester les lectures aléatoires :
sudo fio --filename=device name --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fiorandomread.fio, avec les éléments suivants :
[global] bs=4K iodepth=256 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randread rw=randread [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio randomread.fio
Exécutez la commande suivante sur le point de montage pour tester les lectures/écritures du fichier :
sudo fio --filename=/custom mount point/file --size=500GB --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Ajoutez à la fois les E/S par seconde de lecture et les E/S par seconde d'écriture renvoyées.
N'exécutez pas de tests FIO avec une charge globale d'écriture (
readwrite
, randrw
, write
, trimwrite
) directement sur un dispositif en cours d'utilisation. Exécutez la commande suivante pour tester les lectures/écritures aléatoires :
sudo fio --filename=device name --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Ajoutez à la fois les E/S par seconde de lecture et les E/S par seconde d'écriture renvoyées.
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fiorandomreadwrite.fio, avec les éléments suivants :
[global] bs=4K iodepth=256 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randreadwrite rw=randrw [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio randomreadwrite.fio
Pour les charges globales qui vous permettent de bénéficier de modèles d'accès séquentiel, comme les charges globales de base de données, vous pouvez vérifier les performances du modèle en testant les lectures séquentielles.
Exécutez la commande suivante pour tester les lectures séquentielles :
sudo fio --filename=device name --direct=1 --rw=read --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche :
-
Créez un fichier de travail, fioread.fio, avec les éléments suivants :
[global] bs=4K iodepth=256 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-read rw=read [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio read.fio
Tests des performances de débit
Utilisez les exemples de commande FIO suivants pour tester les performances de débit.
Exécutez la commande suivante pour tester les lectures aléatoires :
sudo fio --filename=device name --direct=1 --rw=randread --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fiorandomread.fio, avec les éléments suivants :
[global] bs=256K iodepth=64 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randread rw=randread [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio randomread.fio
Exécutez la commande suivante sur le point de montage pour tester les lectures/écritures du fichier :
sudo fio --filename=/custom mount point/file --size=500GB --direct=1 --rw=randrw --bs=64k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1
Ajoutez les Mbits/s de lecture et les Mbits/s d'écriture renvoyés.
N'exécutez pas de tests FIO avec une charge globale d'écriture (
readwrite
, randrw
, write
, trimwrite
) directement sur un dispositif en cours d'utilisation. Exécutez la commande suivante pour tester les lectures/écritures aléatoires :
sudo fio --filename=device name --direct=1 --rw=randrw --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1
Ajoutez les Mbits/s de lecture et les Mbits/s d'écriture renvoyés.
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fiorandomread.fio, avec les éléments suivants :
[global] bs=256K iodepth=64 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randreadwrite rw=randrw [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio randomreadwrite.fio
Pour les charges globales qui vous permettent de bénéficier de modèles d'accès séquentiel, comme les charges globales de base de données, vous pouvez vérifier les performances du modèle en testant les lectures séquentielles.
Exécutez la commande suivante pour tester les lectures séquentielles :
sudo fio --filename=device name --direct=1 --rw=read --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fioread.fio, avec les éléments suivants :
[global] bs=256K iodepth=64 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-read rw=read [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio read.fio
Tests des performances de latence
Utilisez les exemples de commande FIO suivants pour tester les performances de latence. Vous pouvez exécuter les commandes directement ou créer un fichier de travail avec la commande, puis exécuter ce dernier.
Exécutez la commande suivante directement afin de tester les lectures aléatoires pour la latence :
sudo fio --filename=device name --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=1 --numjobs=1 --time_based --group_reporting --name=readlatency-test-job --runtime=120 --eta-newline=1 --readonly
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fiorandomreadlatency.fio, avec les éléments suivants :
[global] bs=4K iodepth=1 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=1 name=readlatency-test-job rw=randread [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio fiorandomreadlatency.fio
N'exécutez pas de tests FIO avec une charge globale d'écriture (
readwrite
, randrw
, write
, trimwrite
) directement sur un dispositif en cours d'utilisation. Exécutez la commande suivante directement afin de tester les lectures/écritures aléatoires pour la latence :
sudo fio --filename=device name --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=1 --numjobs=1 --time_based --group_reporting --name=rwlatency-test-job --runtime=120 --eta-newline=1
Dans certains cas, des résultats plus cohérents peuvent être obtenus en utilisant un fichier de travail plutôt qu'en exécutant directement la commande. Suivez les étapes ci-dessous pour utiliser cette approche.
-
Créez un fichier de travail, fiorandomrwlatency.fio, avec les éléments suivants :
[global] bs=4K iodepth=1 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=1 name=rwlatency-test-job rw=randrw [job1] filename=device name
-
Exécutez le travail à l'aide de la commande suivante :
fio fioradomrwlatency.fio