Como fazer com que os acessos do NFS excedam o tempo muito mais rápido

1

Temos um aplicativo da web com carga balanceada que exibe algumas imagens de uma unidade montada pelo NFS.

Quando o servidor NFS é desativado, ele acaba desativando todas as instâncias da web.

Atualmente, o volume é montado com:

ip:/path/to/images /docroot/images nfs soft,intr,rw,rsize=32768,wsize=32768 0 0

Eu fiz um teste de cerco contra uma seleção de imagens que vivem neste volume, e quando ele caiu, as solicitações terminaram com o tempo limite baseado no valor do Tempo limite do apache (que foi definido para 600 segundos para este teste).

Alterei as opções de montagem para:

bg,soft,intr,rw,rsize=32768,wsize=32768,timeo=5,retrans=2,actimeo=60,retry=15

E isso foi melhor, mas ainda demorou muito para falhar: o primeiro conjunto de solicitações expirou em cerca de 30 segundos, mas o próximo conjunto levou de 180 a 300s.

Eu sei que a solução a longo prazo é transferi-los para o S3, mas é possível reduzir isso para menos de 5-10s sem afetar o desempenho?

    
por chris 09.02.2016 / 20:58

1 resposta

2

As montagens de software podem "causar corrupção silenciosa de dados em certos casos". Considere usar uma montagem ro. Assumindo que o Linux é o sistema operacional, a página de manual do NFS lista as opções de montagem que você pode alterar. Sem testes, dada uma montagem TCP suave (somente leitura) timeo=1 e retrans=3 causariam falha na operação em 6 segundos. ("O cliente NFS executa backoff linear: Após cada retransmissão, o tempo limite é aumentado em timeo ...")

    
por 09.02.2016 / 22:24

Tags