Má performance de gravação no servidor Debian executando NFS com sistema de arquivos JFS exportado 22TB

5

Atualmente, estou executando um servidor debian que está exportando um sistema de arquivos JFS grande (22TB) sobre NFS (nfs-kernel-server.) Ao tentar gravar no compartilhamento NFS, o desempenho é muito ruim. O disco de 22 TB está sentado em um NAS montado usando iSCSI.

  • Ele será interrompido por um momento próximo à velocidade esperada da linha e ficará ocioso por vários segundos. Muito pouco tráfego medido no baixo kb / seg.
  • A espera aparece na gravação.
  • Ao ler a montagem NFS, o sistema opera na velocidade esperada (11MB / s).
  • O problema não ocorre quando se usa SFTP, rsync ou coping local (não-nfs).
  • O problema persiste entre versões estáveis e de teste.
  • Na mesma máquina, eu tenho um sistema de arquivos 14TB ext4 usando exatamente a mesma configuração de exportação que não compartilha o problema. Esse compartilhamento não está em uso regular e, portanto, não consome recursos.

Servidor NFS:

cat /etc/exports
/data2      10.1.20.86(rw,no_subtree_check,async,all_squash)

cat /sys/block/sdb/queue/scheduler
noop [deadline] cfq

cat /etc/default/nfs-kernel-server 
RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS=--manage-gids
NEED_SVCGSSD=
RPCSVCGSSDOPTS=

Cliente NFS:

cat /etc/fstab
10.1.20.100:/data2  /root/incoming  nfs     rw,noatime,soft,intr,noacl 0 2

cat /sys/block/sdb/queue/scheduler
noop [deadline] cfq

cat /proc/mounts
10.1.20.100:/data2/ /root/incoming nfs4 rw,noatime,vers=4,rsize=262144,wsize=262144,namlen=255,soft,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.1.20.86,minorversion=0,addr=10.1.20.100 0 0

Esse problema me deixou perplexo. Qualquer ajuda seria muito bem-vinda. Obrigado.

    
por user143546 01.11.2012 / 01:37

3 respostas

1

Meu palpite é que o número de threads do servidor NFS é muito baixo. Em vez de 8, o número deve ser muito maior.

8 threads provavelmente seriam suficientes para compartilhamentos que contêm apenas arquivos pequenos e são acessados por um número muito pequeno de usuários (por exemplo, em uma rede doméstica) ou em redes lentas (10 Mbit).

Tente determinar o valor de retrans no seu servidor NFS durante a gravação:

nsstat -r

Se você obtiver novas tentativas de transmissão, aumente o número de threads do servidor.

E eu acho que seria salvar para remover as configurações de rsize / wsize / tcp de suas opções de montagem. O TCP é o protocolo padrão e, com o TCP, não é necessário limitar o tamanho da transferência.

    
por 13.07.2013 / 19:42
0

Eu suspeito de algum problema com o JumboFrames. Verifique a configuração de descarregamento em ambas as interfaces usando

sudo ethtool -k your_nic

e também tente ouvir os fios usando wireshark. Você pode encontrar alguns pacotes fora de ordem, dups, ...

    
por 05.01.2013 / 00:42
0

Talvez seja incompatibilidade com o bloqueio do nfs usado para escrever e jfs. Eu encontrei algum bug no Ubuntu: link

    
por 19.02.2014 / 09:03