Você precisa estar ciente dos recursos de cada parte de sua pilha. Que tipo de discos compõem o sistema de arquivos para o compartilhamento NFS? SAS? SATA SSD? Que tipo e tamanho e velocidade de rpm de cada um? latência rotacional? É uma unidade de 4k? O ZFS é otimizado para unidades de 512 bytes e há problemas conhecidos com o desempenho usando novos discos de "formato avançado".
Qual é o tamanho da sua carga de trabalho de E / S? Isso também afeta a rapidez com que seu armazenamento será exibido.
De uma perspectiva puramente de armazenamento, essas perguntas afetarão a velocidade com que os dados podem ser gravados e lidos nos discos de back-end. Por exemplo, digamos que seu compartilhamento NFS esteja vindo de um sistema de arquivos em um disco SATA de 7200 RPM de 1TB e que seu tamanho de carga de trabalho seja de 64 KB e seja na maior parte aleatório.
Random Workload, 64 KB IO size
--------------------------------------------------------------------------------
Average Read Seek Time: 8.4 ms
Average Write Seek Time: 8.9 ms
Rotational latency: .120 ms
Average Latency: 4.166 ms
Average Read Service Time: 12.566 ms
Average Write Service Time: 13.066 ms
--------------------------------------------------------------------------------
Best Case Read IOPs: 79.000
Best Case Write IOPs: 76.000
--------------------------------------------------------------------------------
Best Case Read Throughput: 4.937 MB/s
Best Case Write Throughput: 4.750 MB/s
--------------------------------------------------------------------------------
Real World Read IOPs: 55.300
Real World Write IOPs: 53.200
--------------------------------------------------------------------------------
Real World Read Throughput: 3.325 MB/s
Real World Write Throughput: 3.325 MB/s
--------------------------------------------------------------------------------
Isso lhe dará uma idéia do desempenho do mundo real que você pode esperar obter de um único disco em um determinado tamanho de carga de trabalho.
Você pode aumentar esse desempenho criando um cache de gravação ou montando o sistema de arquivos NFS de forma assíncrona, para que as confirmações de gravação não sejam necessárias antes do início da próxima E / S (não que eu recomende isso, pois coloca seus dados em risco ).
Depois de entender o desempenho do seu armazenamento de back-end, você pode começar a observar a sobrecarga adicional criada pelo NFS (é v3? v4? tcp? udp?) ou SSH (qual algoritmo de criptografia você está usando? use um algoritmo mais leve como arcfour para melhorar o desempenho) ou a própria rede. Você tem um NIC barato de 1 GbE? ou um NIC de qualidade de servidor de ponta? você está compartilhando esse nic entre vários serviços? alguma coisa está gerando tráfego na sua rede? Como sobre o congestionamento da rede, colisões ou altas taxas de retransmissão?
Tudo isso é somado para reduzir ainda mais o aparente desempenho do seu armazenamento de back-end, o que significa que todos são adicionados para fazer as coisas parecerem muito lentas no lado do cliente.
Agora, os números acima são uma espécie de pior cenário, certo? Carga de trabalho síncrona aleatória de 100%. Se você tiver uma carga de trabalho sequencial ou aumentar o tamanho da carga de trabalho de E / S, poderá aumentar drasticamente o desempenho. Por exemplo, se você conseguir aumentar seu tamanho de E / S para 128k, duplicará seu desempenho e, dependendo do seu cliente NFS, poderá definir rsize e wsize para várias configurações para testar o desempenho. Afinal, há um ponto de retornos decrescentes.
E se você tiver vários discos, no espelho ou no RAID, terá que ajustar seus números para isso.
O Real World Disk Performance quase nunca é impresso no lado da caixa em que o disco entrou.