Exemples de commande FIO de test de la performance des volumes par blocs dans les instances Linux

Cette rubrique présente des exemples de commandes FIO qui permettent d'exécuter des tests de performance pour le service Volumes par blocs pour Oracle Cloud Infrastructure dans les instances créées à partir d'images basées sur Linux.

Installation de FIO

Pour installer et configurer FIO sur vos instances utilisant des systèmes d'exploitation basés sur 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 pour installer et configurer FIO pour vos systèmes Oracle Linux et 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 pour installer et configurer FIO pour vos systèmes Ubuntu :

sudo apt-get update && sudo apt-get install fio -y

Cette commande s'applique à Ubuntu 20.04, Ubuntu 18.04 et Ubuntu Minimal 18.04.

Commandes FIO

Cette section comprend des exemples de commandes FIO.

Tests de performance d'E/S par seconde

Utilisez les exemples de commandes FIO suivants pour tester la performance d'E/S par seconde. Vous pouvez exécuter les commandes directement ou créer un fichier de tâche contenant la commande, puis exécuter le fichier de tâche.

Tester les 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, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fiorandomread.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio randomread.fio
Tester les lectures/écritures de fichier aléatoires

Exécutez la commande suivante sur le point de montage afin de tester les lectures/écritures de 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 les E/S par seconde en lecture et en écriture retournées.

Tester les lectures/écritures aléatoires
Attention

N'exécutez pas les tests FIO avec une charge de travail en écriture (readwrite, randrw, write, trimwrite) directement sur un périphérique 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 les E/S par seconde en lecture et en écriture retournées.

Dans certains cas, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fiorandomreadwrite.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio randomreadwrite.fio
Tester les lectures séquentielles

Pour les charges de travail qui permettent de tirer parti de modèles d'accès séquentiels, telles que les charges de travail de base de données, vous pouvez contrôler la performance de ce 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, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fioread.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio read.fio

Tests de performance du débit

Utilisez les exemples de commandes FIO suivants pour tester la performance du débit.

Tester les 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, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fiorandomread.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio randomread.fio
Tester les lectures/écritures de fichier aléatoires

Exécutez la commande suivante sur le point de montage afin de tester les lectures/écritures de 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 Mbit/s en lecture et en écriture retournés.

Tester les lectures/écritures aléatoires
Attention

N'exécutez pas les tests FIO avec une charge de travail en écriture (readwrite, randrw, write, trimwrite) directement sur un périphérique 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 Mbit/s en lecture et en écriture retournés.

Dans certains cas, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fiorandomread.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio randomreadwrite.fio
Tester les lectures séquentielles

Pour les charges de travail qui permettent de tirer parti de modèles d'accès séquentiels, telles que les charges de travail de base de données, vous pouvez contrôler la performance de ce 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, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fioread.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio read.fio

Tests de performance de latence

Utilisez les exemples de commandes FIO suivants pour tester la performance de latence. Vous pouvez exécuter les commandes directement ou créer un fichier de tâche contenant la commande, puis exécuter le fichier de tâche.

Tester la latence des lectures aléatoires

Exécutez la commande suivante directement pour tester la latence des lectures aléatoires :

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, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fiorandomreadlatency.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio fiorandomreadlatency.fio
Tester la latence des lectures/écritures aléatoires
Attention

N'exécutez pas les tests FIO avec une charge de travail en écriture (readwrite, randrw, write, trimwrite) directement sur un périphérique en cours d'utilisation.

Exécutez la commande suivante directement pour tester la latence des lectures/écritures aléatoires :

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, les résultats seront peut-être plus cohérents si vous utilisez un fichier de tâche au lieu d'exécuter la commande directement. Pour ce faire, procédez comme suit.

  1. Créez un fichier de tâche, fiorandomrwlatency.fio, contenant 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 la tâche au moyen de la commande suivante :
    fio fioradomrwlatency.fio