Tempo limite de montagem do NFS muito lento

5

Temos um cluster de servidores muito ocupado. Nossos 16 servidores de aplicativos servem nosso aplicativo fora de um SSD local em cada máquina, mas eles também processam imagens que são então servidas fora do nosso cdn. Por causa disso, temos alguns servidores de imagem centrais que montamos a partir de nossos servidores de aplicativos.
Recentemente, tivemos um problema com os servidores de imagem em que fomos obrigados a desligá-los. Não é grande coisa, o nosso CDN ainda servirá a maioria das nossas imagens, para que ninguém perceba o tempo de inatividade. Não é bem assim ..

Em vez de continuar as operações normais, os servidores de aplicativos dispararam em carga e falharam ou não responderam. Depois de um dia de escavação, reduzimos o problema à nossa montagem nfs. Mesmo que não houvesse leituras ou gravações indo para a montagem nfs, o simples fato de que ela estava inativa estava causando o congelamento completo do apache.
Não é grande coisa, fizemos algumas pesquisas e descobrimos que estávamos montando nosso volume nfs como uma montagem rígida, e precisávamos mudar para uma montagem flexível, usar intr e definir tanto um valor timeo quanto um valor retr. Nós ajustamos o número de novas tentativas para 0, e definimos o timeo=1 (é em décimos de segundo, então eu acredito que 1 é tão baixo quanto podemos ir). Com essas configurações em vigor, encerramos os servidores de imagem para replicar a falha anterior e esperamos para ver o que aconteceu.

O resultado foi melhor, mas apenas porque o sistema inteiro não travou, mas o serviço foi tão lento que pode ter caído. Parece que, mesmo com um décimo de segundo, isso é muito tempo para o tempo de espera do nfs mount, então acabamos com um enorme acúmulo de conexões no balanceador de carga e talvez um décimo de capacidade.

Para verificar meu resultado, desmontei a montagem nfs de 4 dos 16 servidores de aplicativos e os níveis de solicitação para esses 4 servidores eram completamente normais.

Portanto, existe uma maneira de definir um tempo limite menor para a montagem nfs ou de desmontar a unidade em caso de erro e fazer com que ela seja remontada automaticamente depois que o servidor inoperante voltar a ficar on-line? Ou há outra solução que estou negligenciando que não acrescente complexidade ao nosso sistema?

    
por Brian Lovett 21.01.2013 / 23:22

1 resposta

2

A primeira coisa que gostaria de fazer é definir a opção retrans como 1 (ou 0, mas não sei se isso funcionará como esperado). Isso deve diminuir o tempo necessário para o tempo limite

    
por 22.01.2013 / 00:10