Teste do desempenho do SFS Turbo
fio é uma ferramenta de teste de pressão de I/O de código aberto. Você pode usar fio para testar a taxa de transferência e o IOPS do SFS.
Pré-requisitos
fio foi instalado no servidor. Ele pode ser baixado do site oficial ou do GitHub.
Nota e descrição
O teste do desempenho depende da largura de banda da rede entre o cliente e o servidor, bem como da capacidade do sistema de arquivos.
Instalar fio
O seguinte usa um sistema Linux CentOS como exemplo:
Dados de desempenho do sistema de arquivos
Os indicadores de desempenho dos sistemas de arquivos do SFS Turbo incluem IOPS e taxa de transferência. Para mais detalhes, consulte Tabela 1.
Parâmetro |
SFS Turbo Standard |
SFS Turbo Performance |
---|---|---|
Máximo de capacidade |
32 TB |
32 TB |
Máximo de IOPS |
5.000 |
20.000 |
Máximo de taxa de transferência |
150 MB/s |
350 MB/s |
Fórmula usada para calcular o IOPS |
IOPS = Min. (5.000, (1.200 + 6 x Capacidade)) |
IOPS = Min. (20.000, (1.500 + 20 x Capacidade)) |
Fórmula de Cálculo do IOPS
- IOPS de um único sistema de arquivos = Min. (Máximo IOPS, (IOPS de linha básica + IOPS per GB x Capacidade))
Para um sistema de arquivos do SFS Turbo Performance:
- Se a capacidade do sistema de arquivos for de 500 GB: IOPS = Min. (20.000, (1.500 + 20 x 500)) = 11.500
- Se a capacidade do sistema de arquivos for de 1.000 GB: IOPS = Min. (20.000, (1.500 + 20 x 1.000)) = 20.000
- Nenhuma fórmula de cálculo de desempenho está disponível para os sistemas de arquivos do SFS Turbo Standard - Enhanced e SFS Turbo Performance - Enhanced. O IOPS de um sistema de arquivos do SFS Turbo Standard - Enhanced é 15.000 e o de um sistema de arquivos do SFS Turbo Performance - Enhanced é 100.000.
Exemplo de configuração de teste comum
Os seguintes valores estimados são obtidos a partir do teste em um único ECS. Você é aconselhado a usar vários ECSs para testar o desempenho do SFS.
Nos exemplos a seguir, SFS Turbo Performance e servidores com as seguintes especificações são usados para ilustração.
Especificações: computação-plus geral | c3.xlarge.4 | 4 vCPUs | 16 GB
Imagem: CentOS 7.5 64-bit
Leitura/gravação mista com uma proporção de leitura/gravação de 7:3
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=30 --fallocate=none
/mnt/nfs/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/nfs neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Leitura/gravação mista com uma proporção de leitura/gravação de 3:7
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=70 --fallocate=none
/mnt/nfs/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/nfs neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Leitura de IOPS sequencial
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=read --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Leitura de IOPS aleatório
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=randread --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Gravação de IOPS sequencial
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=write --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Gravação de IOPS aleatório
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=randwrite --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Leitura de largura de banda sequencial
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=read --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Leitura de largura de banda aleatória
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=randread --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Gravação de largura de banda sequencial
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=write --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio:
Gravação de largura de banda aleatória
- comando de fio:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=randwrite --fallocate=none
/mnt/sfs-turbo/test_fio indica a localização do arquivo a ser testado. O local deve ser específico para o nome do arquivo, que é o arquivo test_fio no diretório /mnt/sfs-turbo neste exemplo. Defina-o com base nos requisitos do site.
- resultado de fio: