Taxa de transferência
A taxa de transferência é útil quando você faz coisas como copiar arquivos. Quando você está fazendo quase qualquer outra coisa, as leituras e gravações aleatórias no disco limitam você.
IOPS
Os IOPS normalmente especificam o tamanho de cada pacote de dados. Por exemplo, o AWS gp2 pode executar 10.000 IOPS com um tamanho de carga útil de 16 KiB . Isso multiplica para 160MiB / s. No entanto, provavelmente é improvável que você use o tamanho total da carga útil o tempo todo, portanto a taxa de transferência real provavelmente será menor. NB KiB é 1024 bytes, KB é 1000 bytes.
Como o IOPS especifica um tamanho de pacote que também fornece rendimento total. Considerando que a alta taxa de transferência não significa que você tenha IOPS alto.
Cenários
Considere estes cenários:
- Inicializando seu PC. Considere a diferença entre um SSD e um disco giratório no seu computador, algo com o qual muitas pessoas têm experiência em primeira mão. Com um disco giratório, o tempo de inicialização pode ser de um minuto, enquanto que com um SSD, isso pode diminuir de 10 a 15 segundos. Isso ocorre porque um IOPS mais alto leva a uma menor latência quando as informações são solicitadas. A taxa de transferência do disco giratório é muito boa, 150 MB / s, embora o SSD provavelmente seja maior, não é por isso que é mais rápido - é a menor latência para retornar informações.
- Executando uma atualização do sistema operacional. Está passando por todo o disco, adicionando e corrigindo arquivos. Se você tivesse IOPS baixo, seria lento, independentemente da taxa de transferência.
- Executando um banco de dados, por exemplo, selecionando uma pequena quantidade de dados de um banco de dados grande. Ele lerá o índice, lerá vários arquivos e retornará um resultado. Novamente, ele está percorrendo todo o disco para coletar as informações.
- Jogando um jogo no seu PC. Provavelmente carrega um grande número de texturas de todo o disco. Nesse caso, é provável que sejam necessários IOPS e taxa de transferência.
Fita LTO
Considere por um momento um sistema de backup em fita. O LTO6 pode fazer 400 MB / s, mas (suponho aqui) provavelmente não pode nem fazer uma PIO aleatória, pode ser tão baixo quanto segundos por PIO. Por outro lado, provavelmente ele pode executar várias IOPS seqüenciais, se uma IOPS for definida como ler ou gravar uma parcela de dados em fita.
Se você tentasse inicializar um SO com fita, levaria muito tempo, se funcionasse. É por isso que o IOPS geralmente é mais útil que a taxa de transferência.
Para entender um dispositivo de armazenamento, você provavelmente deseja saber se é IOPS aleatório ou seqüencial e o tamanho de IO. A partir disso, você pode derivar a taxa de transferência.
AWS
Observe que a AWS publica números de IOPS e de taxa de transferência para todos os seus tipos de armazenamento, nesta página . O SSD de uso geral (gp2) pode executar 10.000 16KiB IOPS, o que fornece um máximo de 160MB / s. Os IOPS provisionados (io1) são 20.000 IOPS de 16 KiB, o que fornece um máximo de 320 MB / s.
Observe que, com volumes gp2, você obtém 30IOPS por GB provisionado; portanto, para obter 10.000 IOPS, é necessário um volume de 333,33GB. Não me lembro se os volumes io1 têm uma limitação semelhante (já faz um tempo desde que fiz os exames de associado em que esse tipo de coisa é testada), mas suspeito que sim, e, nesse caso, é provavelmente 60IOPS por GB.
Conclusão
A alta taxa de transferência seqüencial é útil e, em alguns casos, é o fator limitador do desempenho, mas é provável que altos IOPS sejam mais importantes na maioria dos casos. É claro que você ainda precisa de uma taxa de transferência razoável, independentemente do IOPS.