Amostras de Comandos FIO para Testes de Desempenho do Serviço Block Volume nas Instâncias Baseadas em Linux
Este tópico descreve comandos FIO de amostra que você pode usar para fazer testes de desempenho do serviço Oracle Cloud Infrastructure Block Volume em instâncias criadas com o uso de imagens baseadas em Linux.
Instalando o FIO
Para instalar e configurar o FIO em suas instâncias com sistemas operacionais baseados em Linux, execute os comandos aplicáveis à versão do sistema operacional da sua instância.
Execute o seguinte comando para instalar e configurar o FIO para os seus sistemas Oracle Linux ou CentOS.
- Oracle Autonomous Linux 8.x, Oracle Linux 8.x e Oracle Linux Cloud Developer 8:
sudo dnf install fio -y
- Oracle Autonomous Linux 7.x, Oracle Linux 6.x, Oracle Linux 7.x, CentOS 7 e CentOS Stream 8:
sudo yum install fio -y
Execute os seguintes comandos para instalar e configurar o FIO para seus sistemas Ubuntu:
sudo apt-get update && sudo apt-get install fio -y
Isso se aplica ao Ubuntu 20.04, Ubuntu 18.04 e Ubuntu Mínimo 18.04.
Comandos FIO
Testes de Desempenho de IOPS
Use os seguintes comandos FIO de exemplo para testar o desempenho de IOPS. Você pode executar os comandos diretamente ou criar um arquivo de job com o comando e depois executar o arquivo.
Execute o seguinte comando diretamente para testar leituras aleatórias:
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
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fiorandomread.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio randomread.fio
Execute o seguinte comando no ponto de montagem para testar leitura/gravação do arquivo:
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
Adicione o IOPS de leitura e o IOPS de gravação retornados.
Não faça testes de FIO com uma carga de trabalho de gravação (
readwrite
, randrw
, write
, trimwrite
) diretamente em um dispositivo que está em uso. Execute o seguinte comando para testar leitura/gravações aleatórias:
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
Adicione o IOPS de leitura e o IOPS de gravação retornados.
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fiorandomreadwrite.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio randomreadwrite.fio
Para cargas de trabalho que permitem utilizar padrões de acessos sequenciais, como cargas de trabalho de banco de dados, você pode confirmar o desempenho desse padrão testando leituras sequenciais.
Execute o seguinte comando para testar leituras sequenciais:
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
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as seguintes instruções para essa abordagem:
-
Crie um arquivo de job, fioread.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio read.fio
Testes de Desempenho de Throughput
Use os seguintes comandos FIO de exemplo para testar o desempenho de throughput.
Execute o seguinte comando para testar leituras aleatórias:
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
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fiorandomread.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio randomread.fio
Execute o seguinte comando no ponto de montagem para testar leitura/gravação do arquivo:
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
Adicione os MBPs de leitura e de gravação retornados.
Não faça testes de FIO com uma carga de trabalho de gravação (
readwrite
, randrw
, write
, trimwrite
) diretamente em um dispositivo que está em uso. Execute o seguinte comando para testar leitura/gravações aleatórias:
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
Adicione os MBPs de leitura e de gravação retornados.
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fiorandomread.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio randomreadwrite.fio
Para cargas de trabalho que permitem utilizar padrões de acessos sequenciais, como cargas de trabalho de banco de dados, você pode confirmar o desempenho desse padrão testando leituras sequenciais.
Execute o seguinte comando para testar leituras sequenciais:
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
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fioread.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio read.fio
Testes de Desempenho de Latência
Use os seguintes comandos FIO de exemplo para testar o desempenho de latência. Você pode executar os comandos diretamente ou criar um arquivo de job com o comando e depois executar o arquivo.
Execute o seguinte comando diretamente para testar leituras aleatórias de latência:
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
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fiorandomreadlatency.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio fiorandomreadlatency.fio
Não faça testes de FIO com uma carga de trabalho de gravação (
readwrite
, randrw
, write
, trimwrite
) diretamente em um dispositivo que está em uso. Execute o seguinte comando diretamente para testar leitura/gravações aleatórias de latência:
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
Em alguns casos, você poderá ver resultados mais consistentes se usar um arquivo de job em vez de executar o comando diretamente. Use as etapas a seguir para essa abordagem.
-
Crie um arquivo de job, fiorandomrwlatency.fio, com o seguinte:
[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
-
Execute o job usando o seguinte comando:
fio fioradomrwlatency.fio