próximo acima anterior sumário índice
Próximo: D6. Segurança e NFS Acima: D. Como Fazer - Anterior: D4.2 Otimizando NFS   Sumário   Índice


D5. NFS Sobre Linhas de Baixa Velocidade

Linhas de baixa velocidade incluem modems, ISDN e praticamente todas as ligações de longa distância possíveis.

Esta seção é baseada no conhecimento dos protocolos usados, mas não em experiências de campo. Meu computador pessoal esteve inativo por um longo tempo e caso você tenha alguma experiência adicional, por favor informe.

A primeira coisa para se lembrar sobre NFS é que ele é um protocolo lento e tem ainda um alto número de informações adicionais. Usar NFS é o mesmo que se utilizar o kermit para transferir arquivos. É lento. Praticamente qualquer coisa é mais rápida que NFS. FTP, HTTP, rcp, ssh por exemplo.

Ainda quer tentar? Ok.

Os parâmetros padrões do NFS são para linhas rápidas com baixa latência. Caso se esteja usando estes parâmetros para linhas de alta latência, certamente o NFS reportará alguns erros, encerrará operações, imaginará que arquivos são menores do que eles sejam na realidade e agirá estranhamente em alguns casos.

A primeira coisa a não fazer é usar a opção de montagem soft. Ela provocará ultrapassagem dos tempos de espera e retornos de erro para o software, o qual, na maior parte do tempo, não saberá lidar corretamente com eles. Essa é uma maneira rápida de se obter erros misteriosos. Ao invés disso deve ser usada a opção de montagem hard, que gera infinitas tentativas em caso de estouro de tempo de espera, ao invés de encerrar a solicitação, independentemente do que o software deseja fazer. Isso será realmente necessário nestes casos.

A próxima providência é mudar as opções de montagem timeo e retrans. Elas são descritas na página de manual do nfs(5), mas segue aqui uma cópia:


timeo=n
O número de décimos de segundo antes de enviar a primeira retransmissão 
após findo o tempo de espera de uma RPC. O valor padrão é de 7 décimos 
de segundo. Após a primeira espera, o tempo é dobrado após cada espera 
sem respostas, até um máximo de 60 segundos ou um número máximo de 
retransmissões ser atingido. Então, caso o sistema de arquivos esteja 
montado com a opção hard, cada novo tempo de espera começa com o dobro 
do tempo da anterior, novamente dobrando a cada retransmissão. O tempo 
máximo de espera é sempre de 60 segundos. Uma melhor performance pode 
ser atingida ao se incrementar o tempo de espera, quando se está montando 
sistemas sobre uma rede com muito tráfego, utilizando-se servidores 
lentos ou usando o sistema através de diversos roteadores e portas de 
entrada.

retrans=n
O número de tempo limite e retransmissões que devem ocorrer antes que 
um alarme de tempo de resposta seja acionado. O padrão é de 3 
ocorrências. Quando um alarme de tempo de espera maior ocorre, a 
operação é interrompida ou uma mensagem de ``servidor não está 
respondendo'' é apresentada no console.

Em outras palavras: se uma resposta não for recebida no tempo de espera de 0,7 segundos (700 ms), o cliente NFS irá repetir e dobrar o tempo de espera para 1,4 segundos. Caso a resposta não seja recebida neste tempo, a requisição será enviada novamente com um tempo de espera alterado para 2,8 segundos.

A velocidade da linha pode ser medida com um ping com os mesmos parâmetros das opções rsize/wsize.


$ ping -s 8192 lugulbanda
PING lugulbanda.uio.no (129.240.222.99): 8192 data bytes
8200 bytes from 129.240.222.99: icmp_seq=0 ttl=64 time=15.2 ms
8200 bytes from 129.240.222.99: icmp_seq=1 ttl=64 time=15.9 ms
8200 bytes from 129.240.222.99: icmp_seq=2 ttl=64 time=14.9 ms
8200 bytes from 129.240.222.99: icmp_seq=3 ttl=64 time=14.9 ms
8200 bytes from 129.240.222.99: icmp_seq=4 ttl=64 time=15.0 ms

--- lugulbanda.uio.no ping statistics ---
5 packets transmitted, 5 packets received,0% packet loss
round-trip min/avg/max = 14.9/15.1/15.9 ms

O parâmetro time aqui mostra quanto tempo o pacote ping levou para chegar a e retornar da máquina denominada lugulbanda. 15ms é bastante rápido. Sobre uma linha de 28.800 bps pode-se esperar algo como 4000-5000ms e, caso a linha esteja carregada, um tempo maior, chegando facilmente ao dobro. Quando o tempo é muito alto nos referimos como uma linha de alta latência. Geralmente para pacotes maiores e linhas mais carregada, a latência tende a aumentar. Deve-se aumentar o parâmetro timeo para se adequar a esta realidade. Deve-se atentar que a latência tende a aumentar ainda mais quando se usa a linha para outros serviços como por exemplo FTP e NFS simultaneamente. Neste caso deve-se medir as respostas do comando ping ao se efetuar transferências de arquivos.


próximo acima anterior sumário índice
Próximo: D6. Segurança e NFS Acima: D. Como Fazer - Anterior: D4.2 Otimizando NFS   Sumário   Índice
www.conectiva.com