Como posso melhorar o desempenho do NFS em uma LAN gigabit?

2

Eu tenho um servidor Solaris 10 com clientes Mac OS X em uma LAN gigabit. O servidor Solaris exporta um compartilhamento NFS suportado por RAID-Z e todos os clientes se conectam a ele. No entanto, a transferência de arquivos é mais lenta do que eu acho que deveria ser. Eu habilitei quadros jumbo e isso aumentou meu throughput máximo de 18MB / s para 30MB / s, mas ainda é mais lento do que eu acho que deveria ser. Eu acho que o atual gargalo é o meu switch, que parece não ser capaz de trocar tantos pacotes por segundo quanto as minhas máquinas podem enviar. Além disso, ambas as máquinas usam cerca de 30 a 40% da CPU para as transferências.

Além de substituir o comutador, que pretendo fazer, o que posso fazer para diminuir o uso da CPU e aumentar o rendimento?

    
por Amok 03.09.2009 / 01:05

3 respostas

3

Algumas coisas:

  • Para descobrir se o switch é o problema, tire o switch da equação e teste. Conecte as máquinas de volta para trás e teste novamente. Os cartões GigE conectam-se automaticamente, não é necessário nenhum cabo especial.

  • Depois disso, o ajuste do NFS é um pouco de arte em preto. Pelo que tenho visto, ele tende a ser muito específico para o servidor NFS e, às vezes, para o cliente NFS. Felizmente, o Google parece ter muitos documentos sobre o assunto. Leia um monte.

por 03.09.2009 / 01:09
5

Geralmente, o Log de Intenção do ZFS (ZIL) é o gargalo do NFS de um servidor de arquivos ZFS. O ZFS obedece ao protocolo NFS de maneira muito rigorosa e garante que os dados das gravações síncronas realmente atinjam o disco antes de reportar sucesso ao gravador. O ZFS usa o ZIL para armazenar temporariamente esses dados antes de gravá-los em um bloco maior no pool. Se as gravações no seu ZIL forem lentas (alta latência), então o desempenho do NFS provavelmente será lento também. Um bom caso de teste desse problema é extrair um grande tarball (muitos arquivos) para a exportação NFS.

Existem pelo menos duas soluções para melhorar o desempenho do NFS:

  • Use um dispositivo de armazenamento rápido e dedicado para o ZIL (pense em NVRAM ou SSD). Você pode até criar um espelho ZIL de dois dispositivos. Aviso: AFAIR não é possível remover um dispositivo ZIL depois de adicioná-lo a um pool. Pense duas vezes. Se você quiser tentar SSDs para você ZIL você pode querer ler este post interessante: um pouco estado sólido estável
  • Desative o ZIL no seu servidor de arquivos ZFS. Bem, isso, claro, quebra a promessa de protocolo de gravações síncronas com o risco de integridade de dados, mas será muito mais rápido. Leia esta parte do Guia de Ajuste do ZFS Evil em> antes de tentar esta alternativa e certifique-se de compreender as consequências.
por 13.10.2009 / 21:37
2

Algumas dicas:

  • tente montar o servidor via SMB / CIFS e veja que tipo de desempenho você recebe
  • tente fazer um teste usando ttcp ou iperf para ver como é sua largura de banda de rede do cliente para o servidor

OS X NFS não é fantástico em nossa experiência (clientes OS X, servidores Linux). Temos um desempenho melhor usando o samba. YMMV!

    
por 21.09.2009 / 02:26