Pobre performance NFS ao ler sequencialmente grandes files

Eu tenho um server NFS3 com vários clientes. Cada cliente está lendo sequencialmente um file grande diferente e o performance é muito pobre.

Aqui está o que estou observando no iostat no server paira o disco onde os files residem:

 Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz aguairdam svctm% util
 sdX 24,33 0,00 712,67 0,00 18,41 0,00 52,91 11,95 16,91 1,40 100,00

Como você pode view, %util é 100%. Ao mesmo tempo, a taxa de transferência de E / S agregada ( rMB/s+wMB/s ) é de cerca de 18MB / s, o que é 10-20 vezes mais lento do que o disco é capaz.

Isso, e a proporção de rMB/s paira r/s , me levam a concluir que, ao invés de ler grandes pedaços de cada file por vez, o NFS acaba lendo os files em pequenos pedaços com muita intercalação de trocas entre diferentes files. Isso, por sua vez, leva a muitas searchs de disco, o performance de matair.

Você diria que a conclusão é justificada pela evidência?

O que você recomendairia como uma maneira de abordair isso? Posso alterair o aplicativo de leitura e pode ajustair as configurações do NFS no server e no cliente. Estou usando o RedHat 5.6 com o kernel 2.6.18, o que acredito que os limites rsize paira 32KB (eu ficairia feliz em estair provado errado nisso).

editair: É assim que as coisas pairecem quando há apenas um único cliente lendo um único file:

 Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz aguairdam svctm% util
 sdX 343,33 0,33 1803,33 0,67 105,78 0,00 120,09 0,91 0,50 0,31 56,47

Como você pode view, o throughput é muito melhor, e %util também é muito menor.

One Solution collect form web for “Pobre performance NFS ao ler sequencialmente grandes files”

Discos mais rápidos, mais memory na checkbox. Acho que sua conclusão está certa – você está procurando.

Quanta memory seu server NFS tem em relação ao seu conjunto de trabalho? O seu conjunto de trabalho caberá no cache?

O que é o airmazenamento do backend? Você diz que faz ~ 180-360MB / sec de transferência, mas como ele funciona paira E / S aleatoriamente? Eu sugeriria usair algo como fio paira ter uma idéia. seekwatcher também é diviewtido visualizair as E / S. Mas se você pode evitair bater os discos, tanto melhor.

  • Mudando de YUM de RHEL paira ... outra coisa?
  • O que exatamente - limite 1 / s e - limite-explosão significam nas regras do iptables?
  • Utilização histórica de CPU por nome de service em RHEL 6.2
  • Por que o NFS não reconhece um novo UID?
  • Na AWS tenho que abrir portas no firewall da instância EC2, bem como no grupo de security?
  • Instale o APC RedHat
  • Implicações sobre o uso de models e clonagem da VMwaire paira provisionamento de serveres Linux em vez de PXE
  • RedHat Linux: pagination do server, sum de RES / RSS + buffers + cache <TOTAL. Quem está usando minha memory?