Estou planejando minha nova infraestrutura de armazenamento compartilhado para um pequeno farm de servidores da web. Portanto, eu executei muitos testes com muitos sistemas de arquivos NAS. Ao fazer isso, obtive alguns resultados inesperados e gostaria de saber se alguém aqui pode confirmar isso.
Resumindo: o Samba é muito mais rápido que o NFS e o GlusterFS para gravações de arquivos pequenos.
Aqui o que eu fiz: Eu executei um "benchmark rsync" simples com muitos arquivos para comparar o desempenho de gravação de arquivos pequenos. Para uma reprodução mais fácil, executei novamente agora com o conteúdo do wordpress atual tar.gz.
- GlusterFS replicado 2: 32-35 segundos , alta carga de CPU
- GlusterFS único: 14-16 segundos , alta carga de CPU
- Cliente GlusterFS + NFS: 16 a 19 segundos , alta carga de CPU
- Servidor de kernel NFS + cliente NFS (sincronização): 32 a 36 segundos , carga de CPU muito baixa
- Servidor de kernel NFS + cliente NFS (assíncrono): 3-4 segundos , carga de CPU muito baixa
- Samba: 4-7 segundos , carga média da CPU
- Disco direto: <1 segundo
Eu não sou absolutamente nenhum guru do samba (acho que meu último contato foi com o samba 2.x), então não otimizei nada aqui - apenas uma configuração pronta para uso (pacote debian / squeeze). A única coisa que eu adicionei "sync always = yes", que deve impor a sincronização após a gravação (mas vendo esses resultados ..). Sem ele, os testes são cerca de 1-2 segundos mais rápidos.
Todos os testes são executados na mesma máquina (montada automaticamente, é exportação NAS), para que não haja atrasos na rede - desempenho puro do protocolo.
Nó lateral: Como sistema de arquivos, usei ext4 e xfs. Os resultados acima estão com ext4. xfs teve desempenho até 40% (menos tempo) melhor. As máquinas são instâncias EC2 m1.small. A exportação do NAS está nos volumes EBS, fontes (tar extraído) no disco efêmero.
Então, aqui vamos nós: Alguém pode me explicar por que o samba é muito mais rápido?
Além disso: o desempenho do NFS com o servidor kernel deveria ser tão horrível (superado pelo servidor NFS GlusterFS) no modo de sincronização? Alguma idéia de como ajustar isso?
Obrigado, L
fonte
Respostas:
Usamos o Samba extensivamente e sempre achei que ele era mais rápido que o NFS em quase todos os casos (e só digo isso porque não os comparei o suficiente).
Pelo que vi depois de algumas capturas de pacotes, o protocolo SMB pode ser falador, mas a versão mais recente do Samba implementa o SMB2, que pode emitir vários comandos com um pacote e emitir vários comandos enquanto aguarda um ACK do último comando para voltar. Isso melhorou bastante sua velocidade, pelo menos na minha experiência, e sei que fiquei chocado na primeira vez em que também vi a diferença de velocidade - Solucionando problemas de velocidades de rede - The Old Age Inquérito
fonte