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.

Oracle Linux et CentOS

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
Ubuntu

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.

Test des lectures aléatoires

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.

  1. 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
  2. Exécutez le travail à l'aide de la commande suivante :
    fio randomread.fio
Test des lectures/écritures aléatoires du fichier

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.

Test des lectures/écritures aléatoires
Attention

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.

  1. 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
  2. Exécutez le travail à l'aide de la commande suivante :
    fio randomreadwrite.fio
Test des lectures séquentielles

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 :

  1. 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
  2. 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.

Test des lectures aléatoires

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.

  1. 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
  2. Exécutez le travail à l'aide de la commande suivante :
    fio randomread.fio
Test des lectures/écritures aléatoires du fichier

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.

Test des lectures/écritures aléatoires
Attention

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.

  1. 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
  2. Exécutez le travail à l'aide de la commande suivante :
    fio randomreadwrite.fio
Test des lectures séquentielles

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.

  1. 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
  2. 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.

Test des lectures aléatoires pour la latence

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.

  1. 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
  2. Exécutez le travail à l'aide de la commande suivante :
    fio fiorandomreadlatency.fio
Test des lectures/écritures aléatoires pour la latence
Attention

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.

  1. 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
  2. Exécutez le travail à l'aide de la commande suivante :
    fio fioradomrwlatency.fio