AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 158960
Accepted
FreeSoftwareServers
FreeSoftwareServers
Asked: 2016-12-23 09:26:09 +0800 CST2016-12-23 09:26:09 +0800 CST 2016-12-23 09:26:09 +0800 CST

HAProxy - Balanceamento de carga na configuração de 2 nós - Ganho de desempenho possível?

  • 772

Eu estava conversando com meu chefe sobre o balanceamento de carga de um Cluster Galera de 2 nós e não tínhamos certeza se havia algum motivo.

Para gravações, seu argumento era que, mesmo que equilibrássemos as gravações, era necessário gravar em cada servidor para fazer a replicação.

Para leituras, poderíamos balancear as leituras entre os servidores, mas isso realmente economizaria tempo se tudo passasse agora por uma única VM em outro servidor?

Temos dois SQL Servers dedicados que estão em uma configuração Active-Active Galera.

A única maneira de pensar em fazer um HA-Proxy seria uma 3ª VM em outro servidor. Isso realmente vale o ganho de desempenho para que tudo passe por essa VM que estará em um servidor congestionado com outro tráfego?

É possível/faria sentido colocar HA-Proxy diretamente no(s) SQL Server(s) e balancear a carga das leituras, mas ainda assim passaria pelo servidor primário com HA-Proxy para chegar ao servidor B.

Apenas procurando alguns pensamentos gerais e conselhos para esta configuração simples.

galera virtualisation
  • 1 1 respostas
  • 574 Views

1 respostas

  • Voted
  1. Best Answer
    jynus
    2016-12-23T10:06:16+08:002016-12-23T10:06:16+08:00

    Existem vários tópicos diferentes que você comenta sobre sua pergunta e com muitos "IF", dependendo de sua arquitetura e carga de trabalho específica. Vamos começar com as coisas que você está certo:

    • É verdade que o Galera por si só não deve fornecer uma carga de trabalho de gravação melhor - é um cluster não compartilhado e não fragmentado, o que significa que você terá que escrever em todos os lugares. A única maneira de melhorar significativamente seu desempenho de gravação é se você puder compartilhar a carga de gravação entre vários nós, enquanto no seu caso você os está duplicando. Na verdade, como é uma arquitetura nada compartilhada, quanto mais servidores você adicionar, mais lento o todo geralmente ficará, pois o servidor mais lento ou mais distante será o gargalo da sua replicação. Se você precisa de desempenho de gravação, o galera não é para você (geralmente terá menos throughput do que um único servidor). Você normalmente configura o galera para obter alta disponibilidade (capacidade de sobrevivência de dados e serviços se um nó cair), não melhor desempenho de gravação.

    Existem alguns mas: * Eu tive alguns clientes que reivindicaram melhor desempenho de gravação , provavelmente porque consultas SQL horríveis + Galera exigindo replicação baseada em linha e, em alguns casos especiais, você pode obter alguns ganhos com isso (se você fizer gravações de 30 segundos mas você só escreve alguns registros, você obterá alguma escalabilidade extra). Isso normalmente é muito raro: você deve corrigir primeiro suas consultas, mas estou apenas apontando para uma exceção (muito) específica.

    A essência da sua pergunta é se o fato de você estar adicionando um proxy no meio não valerá a melhoria obtida nas consultas de balanceamento de carga. Para responder a isso, você precisa dizer 6 coisas:

    • Qual é o seu tempo médio atual de ida e volta entre o cliente e os servidores
    • Qual é o tempo médio de ida e volta entre o cliente e o proxy
    • Qual é o tempo médio de ida e volta entre o proxy e os servidores
    • Qual é a sobrecarga do tempo de processamento do proxy
    • Qual é a latência local do tempo real de consulta mysql
    • Quão carregado é o seu cliente médio?

    Isso informará se você está interessado em usar um proxy ou não por motivos de desempenho.

    Você pode descobrir os 3 primeiros usando o ping , os últimos 3 criando o perfil das ações . Normalmente, o tempo de consulta é muito maior do que o tempo de rodada dentro de um datacenter , mas isso depende de quais consultas você está fazendo e a que distância (fisicamente) estão essas VMs . Para cancelar alguns desses horários, as pessoas instalam o proxy na mesma máquina que os clientes, portanto, qualquer sobrecarga é praticamente cancelada. Além disso, HAproxy sendo principalmente um proxy IP, a sobrecarga é muito baixa.

    Agora, se seus servidores não estiverem muito carregados, você pode não obter nenhuma vantagem na latência - consultar o servidor dobrará sua taxa de transferência - se isso afetar a latência ou não, dependerá da sua carga atual.

    Geralmente, há um motivo mais importante para usar um proxy, que é a alta disponibilidade - o uso do HAProxy permitirá que você alterne para um nó secundário da galera caso o ativo fique inativo automaticamente. Também simplificará as trocas manuais. Obviamente, o próprio proxy pode ser um único ponto de falha.

    Espero que ajude você a decidir, mas o conselho mais importante é tentar você mesmo e medir!

    Edit: BTW, com 2 nós apenas, espero que você use o galera como uma solução de replicação, não como um cluster (requer configuração especial) ou com garbd, porque se você não usar, e um nó cair, o segundo cairá também para evitar um cérebro de fenda (nenhum nó tem 50% + quorum).

    • 2

relate perguntas

  • Forçar MariaDB Galera a criar apenas tabelas InnoDB

  • O Galera Cluster rsync apenas arquivos atualizados ou todos os arquivos

  • O MongoDB falha com o erro SymInitialize, a menos que haja um arquivo de página muito grande no Windows

  • Importância da uniformidade de hardware para cluster Galera

  • Como um banco de dados composto é diferente de um ESB, pois ambos fornecem um único ponto de acesso para várias fontes de dados

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve