Como acelerar o acesso aleatório ao NFS

0

Eu tive esse problema desde que eu tenho usado o NFS (10+ anos), mas ficou mais aparente com o recente advento dos SSDs.

Eu tenho uma configuração de LAN com dois servidores conectados diretamente com cada duas placas Ethernet de 1GBit / s. O servidor e o cliente NFS são o Debian 8. Eu exporte um diretório do servidor que está em um SSD.

Eu não tenho nenhum problema com taxa de transferência, eu li arquivos com mais de 150MB / s, atop mostra transferência de pico de 1.6Gbps / s, o que é ok. Escrever é em torno de 125MB / s com sincronismo, 160MB / s com async.

No entanto, acesso aleatório + tempos de gravação parecem ser um problema. Meu benchmark real está construindo um aplicativo Java. O processo de construção é paralelizado, até 6 threads e o desempenho da CPU não é um problema. Em um SSD local, o processo de compilação leva cerca de 90 segundos.

Quando eu construo o mesmo aplicativo em uma montagem NFS, o desempenho é péssimo. A compilação demora cerca de 4 minutos no NFSv3 (assíncrono) e cerca de 7 minutos no NFSv4 (assíncrono). Eu não tive a experiência de testar com a sincronização, é ainda mais lento.

A execução de um conjunto de testes do NFS mostrou que, com o NFSv4, a delegação de gravação parece falhar. Eu não encontrei nenhuma sugestão sobre como ativá-lo.

Eu não espero que nenhum sistema de arquivos de rede tenha um desempenho tão bom quanto um local, mas um fator de 3 ou 4 realmente torna isso realmente inutilizável.

O processo de compilação lê cerca de 500MB e grava cerca de 1GB.

    
por Stefan Seidel 08.03.2017 / 11:17

0 respostas

Tags