Carga de GlusterFS inexplicável e desempenho ruim

1

Estamos executando o servidor de replicação GlusterFS em dois nós e temos dois clientes. O daemon de auto-cura está ativado. Cada cliente está conectado a um servidor diferente usando o cliente Gluster. Temos muitos arquivos muito pequenos no volume do Gluster.

Nós usamos o GlusterFS 3.9.1 dos Repositórios APT oficiais do GlusterFS em um sistema Debian Jessie.

O problema que estamos enfrentando é que um dos servidores está na média de carga 0,1-0,5, enquanto o outro está em 200. O servidor com a carga alta também tem uma quantidade enorme de dados sendo transmitidos constantemente para os nós clientes . Esse fluxo de dados continua mesmo quando os clientes não estão lendo dados de gravação.

Os seguintes valores são medidos por nload e iftop :

servidor: de saída 35-40 MB / s

Dois clientes: entrados 17-20 MB / s

Nosso desempenho no cliente da Gluster é muito ruim. Um ls pode levar até 10 segundos para ser concluído, e nosso aplicativo funciona extremamente lento.

Servidores e clientes estão se conectando através de uma rede de data center interna e podem lidar com muito mais largura de banda, então isso não é um fator limitante.

Minhas duas principais perguntas são:

1: Essas diferenças no comportamento normal do servidor são carregadas para o GlusterFS e o que causa isso?

2: Por que um fluxo de dados constante tão alto para os clientes forma um dos servidores?

Não consigo encontrar nenhuma informação sobre isso na Documentação da Gluster ou na Internet.

    
por kashian 28.02.2017 / 10:25

1 resposta

1

> 1: Essas diferenças no comportamento normal do servidor são carregadas para o GlusterFS e o que causa isso?

Analise mais detalhadamente a origem da carga. Onde está o gargalo? CPU / Disk-IO / ... (ferramentas, por exemplo, top, iotop)

Talvez a carga alta seja baseada em io-wait.

Verifique se há memória livre suficiente, para que o gluster possa usar o cache.

> 2: Por que há um fluxo de dados constante tão alto para os clientes que formam um dos servidores?

Verifique qual programa está enviando quais dados para qual host. O nload e o iftop dão uma ideia sobre o tráfego para toda a interface de rede. então tente nethogs que lhe dão o tráfego (dev, enviado, recebido) pelo PID.

As gravações dos clientes precisam ser escritas no servidor gluster atual. O atual gluster-server tem que enviar o arquivo para o outro gluster-server. Quando os dois servidores gravaram o arquivo, o cliente recebe a confirmação.

Talvez este procedimento "dobre" o tráfego de rede no servidor gluster !? (veja ferramentas de monitoramento de rede ... que processo e para onde vai o tráfego)

preocupações gerais com o desempenho:

Verifique a latência da rede e consulte a postagem no blog de Joe Julian (pesquise "Across conexões de alta latência")

O ls por 10 segundos pode ser "normal" se houver muitos arquivos no diretório. Isso ocorre porque todos os metadados de cada arquivo precisam ser consultados no gluster-server. Veja este post explicando o desempenho nfs vs. gluster-client para um pouco mais de explicação.

Talvez o http: // blog.gluster.org/2016/10/gluster-tiering-and-small-file-performance/ seja interessante para você. Para mim, ajuda um pouco com o desempenho de arquivos pequenos.

    
por 15.03.2017 / 19:58

Tags