Este tópico descreve como usar a ferramenta Flexible I/O Tester (FIO) no Linux para testar o throughput e as operações de entrada/saída por segundo (IOPS) de um sistema de arquivos Cloud Parallel File Storage (CPFS).
Pré-requisitos
Você criou um sistema de arquivos CPFS e o montou em uma instância ECS.
A instância ECS utilizada no teste possui recursos de CPU suficientes (8 núcleos ou mais) e largura de banda interna adequada.
Informações gerais
Use a ferramenta FIO para testar o desempenho do seu sistema de arquivos CPFS. Os resultados dos testes de desempenho podem variar conforme a ferramenta utilizada e podem não refletir o desempenho real. As métricas de desempenho apresentadas neste tópico foram obtidas em testes executados com a ferramenta FIO no Linux e servem como referência de desempenho para o product cloud Parallel File Storage.
Procedimento
Conecte-se à instância ECS. Para mais informações, consulte Connection methods for ECS instances.
-
Instale a ferramenta FIO. Se o FIO já estiver instalado, ignore esta etapa.
Sistema operacional
Comando de instalação
CentOS
sudo yum install fioRedhat
Alibaba Cloud Linux
Ubuntu
Execute os seguintes comandos de instalação na ordem indicada:
sudo apt-get updatesudo apt-get install fio
Debian
-
Execute os comandos de teste de desempenho.
-
IOPS de escrita aleatória:
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 de leitura aleatória:
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 -
Throughput de escrita sequencial:
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 -
Throughput de leitura sequencial:
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 -
Throughput de escrita aleatória:
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 -
Throughput de leitura aleatória:
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
-
Descrição dos parâmetros do FIO
A tabela a seguir descreve os parâmetros do FIO utilizados nos comandos de teste.
Parâmetro | Descrição |
direct | Define se o I/O direto será usado. Valor padrão: 1.
|
iodepth | Define a profundidade da fila de I/O para o teste. Por exemplo, |
rw | Define a política de leitura/escrita do teste. Os valores disponíveis são:
|
ioengine | Define o mecanismo de I/O que o FIO utilizará durante o teste. O mecanismo libaio é o mais comum, pois se alinha aos padrões típicos de aplicações. Para conhecer outras opções, consulte a documentação oficial do FIO. |
bs | Define o tamanho do bloco para cada unidade de I/O. Valor padrão: 4 KiB. É possível especificar valores distintos para operações de leitura e escrita no formato read,write. Qualquer um dos valores pode ser omitido para usar o padrão. |
size | Define o tamanho do arquivo de teste. O FIO lê ou grava o arquivo completo conforme o tamanho especificado antes de encerrar o teste, a menos que outras opções, como runtime, imponham um limite. Se este parâmetro não for especificado, o FIO utilizará o tamanho total do arquivo ou dispositivo indicado. Também é possível especificar o tamanho como um percentual de 1 a 100. Por exemplo, com size=20%, o FIO usa 20% do tamanho total do arquivo ou dispositivo. |
numjobs | Define o número de threads simultâneas para o teste. Neste exemplo, o valor é 256. |
runtime | Define a duração do teste, ou seja, o tempo de execução do FIO. Se este parâmetro não for especificado, o FIO lê ou grava continuamente o arquivo completo definido pelo parâmetro size, usando o valor do parâmetro bs como tamanho do bloco. |
group_reporting | Define o modo de exibição dos resultados do teste. Quando especificado, os resultados agregam as estatísticas de cada processo em vez de reportá-las individualmente por tarefa. |
directory | Define o caminho de montagem do sistema de arquivos a ser testado. Neste exemplo, o caminho é |
name | Define o nome da tarefa de teste. Qualquer nome pode ser utilizado. Neste tópico, por exemplo, é usado Rand_Write_Testing. |
Para mais informações sobre esses parâmetros, consulte a página de manual do FIO.