próximo acima anterior sumário índice
Próximo: D5. NFS Sobre Linhas Acima: D4. Configurando um cliente Anterior: D4.1 Opções de Montagem   Sumário   Índice


D4.2 Otimizando NFS

Normalmente, caso as opções rsize e wsize sejam especificadas, o NFS irá ler e gravar blocos de 4096 e 8172 bytes, respectivamente. Algumas combinações de kernel do Linux e placas de rede não podem lidar com blocos grandes e não podem ser otimizadas. Então vamos tentar descobrir como encontrar os parâmetros rsize e wsize que funcionem da maneira mais otimizada possível. É possível testar a velocidade das opções com um simples comando. Dado o comando mount conforme descrito acima, logo temos acesso de gravação ao disco, podendo executar um teste de performance de gravação seqüencial:


time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096

Este comando criará um arquivo de 64 Mb de bytes zerados (que deve ser grande o suficiente para que o cache não altere significativamente a performance. Pode ser usado um arquivo maior caso o sistema local tenha muita memória). Isso pode ser feito algumas vezes (5-10?), para que se possa ter uma média bem fundamentada. Neste casos, o importante é medir o tempo de ``relógio'' e o tempo efetivamente gasto na conexão. Após, pode-se testar a performance da leitura ao se ler o arquivo de volta:


time dd if=/mnt/testfile of=/dev/null bs=16k

Isso pode ser feito algumas vezes. Após deve-se executar o comando mount e umount novamente com tamanhos maiores em rsize e wsize. Eles devem ser provavelmente múltiplo de 1024 e não maiores que 16384, desde que este é o tamanho máximo do NFS versão 2. Exatamente após a montagem de um tamanho maior, acesse o sistema de arquivos montado através do comando cd e explore-o através do comando ls, para estar seguro que ele está funcionando perfeitamente. Caso os parâmetros rsize/wsize sejam muito grandes, os sintomas não são muito óbvios. Um típico sintoma é uma lista incompleta dos arquivos produzida pelo comando ls e nenhuma mensagem de erro. Ou ao se ler um arquivo ele falha misteriosamente, sem mensagens de erro. Após definir que os parâmetros rsize/wsize funcionam perfeitamente deve-se executar os testes de performance. SunOS e Solaris tem a reputação de funcionar muito melhor com blocos de 4096 bytes.

kernels mais recentes do Linux (desde o 1.3) executam a leitura antecipada para rsizes maiores ou iguais ao tamanho de página da máquina. Em máquinas Intel o tamanho de página é de 4.096 bytes. A leitura adiantada aumenta significativamente a performance de leitura do NFS. Ou seja, sempre que possível deve-se usar o rsize de 4.096 bytes em máquinas Intel.

Lembre-se de editar o arquivo /etc/fstab com os valores de rsize/wsize encontrados.

Uma sugestão para incrementar a performance de gravação do NFS é desabilitar o sincronismo de gravação do servidor. A especificação NFS indica que a gravação NFS solicitada não pode ser considerada finalizada antes dos dados serem gravados em um meio não volátil (normalmente o disco rígido). Isso restringe a performance de gravação de alguma forma, enquanto que gravações assíncronas irão aumentar a velocidade do NFS. O servidor Linux nfsd nunca faz gravações síncronas, primeiro porque a própria implementação do sistema de arquivos não o faz, mas em servidores com sistemas operacionais diferentes isso pode aumentar a performance através do seguinte parâmetro no arquivo exports:


/dir    -async,access=linuxbox

ou algo similar. Por favor verifique a página de manual on-line da máquina em questão. Cabe salientar que esta opção aumenta o risco de perda de dados no caso de algum problema ocorrer antes da sua efetiva gravação.


próximo acima anterior sumário índice
Próximo: D5. NFS Sobre Linhas Acima: D4. Configurando um cliente Anterior: D4.1 Opções de Montagem   Sumário   Índice
www.conectiva.com