Terá 3 servidores + ajuda do balanceador de carga na minha situação?

2

Eu quero atualizar meu servidor por causa dos altos carregamentos do mysql causando lentidão + sempre que houver processos de backup sendo executados no banco de dados, o banco de dados ficaria inacessível, então queria alguma solução. Meu servidor atual é um Opteron 2212 com 8 GB de RAM.

Meu host sugeriu um servidor de configuração inferior (Phenom Hexacore com 8GB de RAM), mas para ter 3 servidores + balanceador de carga ... eles disseram que ajudariam em situações em que há uma grande quantidade de tráfego e também ajudam quando do servidor falhar, que haverá um servidor de backup.

Ao perguntar mais, eles disseram que nenhuma replicação do mysql será configurada porque eles cobram extra por isso, mas ainda poderão configurar uma configuração que atenda às minhas necessidades.

Eu não tenho certeza se meu propósito de uma atualização será alcançado se eu tiver 3 desses servidores e nenhuma replicação do mysql ... eles não são muito claros sobre como eles configurariam isso. Alguma idéia sobre se esta é uma boa solução e o que eu poderia propor a eles?

    
por Sam 30.09.2010 / 15:05

5 respostas

2

Eles querem ganhar mais dinheiro com você, é simples assim.

Primeiras coisas primeiro: fazer um backup torna seu banco de dados inacessível? Ou você tem uma solução de backup muito ruim ou tem sérios problemas de E / S no servidor. É mais provável que seja E / S. Eu olharia para consertar isso antes de tudo. Se você estiver em um VPS, seu host poderá atribuir mapeamentos LUN a você, em vez de fornecer um disco virtual em um LUN abstracto e compartilhado.

Se eles não estiverem configurando a replicação do MySQL, você estará sozinho ou cobrando uma fortuna por isso. Eu não estou familiarizado com a replicação do MySQL (apenas MSSQL), mas estou supondo que esta não é uma tarefa trivial e precisa ser realizada por alguém que sabe o que está fazendo. Se você não vai duplicar o seu servidor SQL, apenas o seu servidor web, então não vejo como isso vai ajudar o seu site.

Em terceiro lugar, você não nos deu nenhum detalhe sobre o banco de dados, então isso é apenas uma tentativa no escuro, mas talvez existam lugares que você possa otimizar dentro do seu banco de dados. Um Opteron 2212 e 8Gb de RAM não é um sistema lento. Temos 400 usuários simultâneos, 18 horas por dia, realizando mais de 500.000 solicitações por dia em nosso portal, resultando em 10 milhões de consultas em um banco de dados de 30 Gb e funcionando perfeitamente em uma máquina com especificações semelhantes. Índices bem desenhados podem poupar muito dinheiro, tempo e dores de cabeça.

Eu acho que há muitos outros caminhos para olhar primeiro, antes de decidir seguir o caminho de balanceamento de carga, especialmente se você estiver indo para o cluster de servidores SQL. Há um ponto que eles acertaram - se um servidor ficar inativo, você terá um failover instantâneo (se o seu balanceador de carga estiver configurado corretamente), mas mesmo se você não tiver um failover, você terá backups (daí o primeiro ponto ) então provavelmente não é o fim do mundo.

    
por 30.09.2010 / 15:13
2

Embora eu aprecie "tendo-3-servidores-load-balancer-help-in-my-situation / 186198 # 186198"> perspectiva e acredito que tem valor, eu sugeriria que seu único motivo talvez não fosse apenas ganhar dinheiro com você.

Parece que a oferta pode estar próxima de uma solução ideal ou, pelo menos, de uma solução mais profissional do que a que você implementou agora. No entanto, ainda pode ser super engenharia para as suas necessidades. Isso é parcialmente uma questão de negócios. A despesa adicional é justificada?

As altas cargas requerem substancialmente mais pesquisas. Retoricamente .. É ler consultas? Eles podem ser otimizados? Seu esquema está otimizado? Se forem consultas de gravação, talvez seja necessário aumentar ou diminuir a escala. Caso contrário, você pode considerar arquivar os dados que não são mais necessários.

Uma solução comum para fazer backup de bancos de dados MySQL é usar um relicant slave e, em seguida, tirar um instantâneo dele, o que impede o bloqueio de DB. Embora a contenção de E / S seja uma causa possível, o uso de mysqldump ou mysqlhotcopy geralmente introduz algum nível de bloqueio. Outras soluções incluem o Xtrabackup . É provável que haja espaço para melhorias substanciais com sua solução de backup.

Embora o que eles propõem seja certamente mais próximo do ideal e melhor do que o que você tem agora, justificar ou não a decisão cabe a você decidir. É provável que você consiga mais ganhos e reduza as despesas recorrentes, melhorando o que você tem agora, pois isso solidificará sua plataforma para crescimento futuro.

    
por 30.09.2010 / 16:12
1

Você deve conseguir executar um backup nessa máquina sem bloquear o banco de dados. Eu daria uma olhada em outras opções de backup. O que você está usando agora?

A menos que a carga de usuários simultâneos seja o problema, um balanceador de carga + servidores causará mais problemas do que soluções. Dependendo do uso do banco de dados (que tipo de E / S? Na maioria das vezes, lê? Principalmente, escreve?), Existem várias maneiras de otimizar seu banco de dados. A replicação do MySQL não é difícil de configurar, mas não acho que seja uma solução para o seu problema.

    
por 30.09.2010 / 15:46
1

Você parece estar argumentando que a fonte de seus problemas de desempenho é exclusivamente a carga do servidor mysql - enquanto a solução proposta iria lidar com a carga HTTP de forma mais eficaz, parece não fazer nada para o problema mysql. Tem certeza de que o SGBD é a causa dos problemas quando você não está fazendo backups?

Eu não concordo com o Farseeker - A replicação do mysql com a finalidade de obter um backup consistente é muito simples de configurar (simples replicação mestre-escravo). Parece um desperdício não aproveitar a potencial capacidade de balanceamento de carga - mas combinada com a exigência de backup, isso tornaria a configuração bastante complicada.

You should be able to run a backup on that machine without locking the database.

Uau. Como? Todo DBMS que eu usei pode bloquear durante um backup - incluindo Oracle e Sybase. Certamente o bloqueio é muito menos frequente com os motores c-isam mais recentes no MySQL - mas ainda existe.

    
por 30.09.2010 / 16:25
0

Você está mencionando uma grande quantidade de gravações para um aplicativo da Web, tem certeza de que é 65:35? Se você tem alta carga do MySQL, então seu problema não será resolvido estendendo a quantidade de servidores, já que você não pode distribuir gravações de banco de dados de maneira fácil sem (normalmente) modificações pesadas em seu código.

Você tem algumas opções:

  1. Otimize seu banco de dados, conforme sugerido pelas outras respostas. Isso significa que todos os dados estão indexados corretamente.

  2. Armazene seus resultados no servidor da web. Existem diferentes estratégias para isso, uma das mais fáceis é escrever HTML gerado em um arquivo que você acabou de ler e produzir se o cache não for invalidado. Serializando objetos PHP em arquivos é outro. Leia sobre diferentes técnicas de cache para sua plataforma (eu estou supondo PHP?)

  3. Use outra solução de backup. Se você usa apenas tabelas MyISAM, veja mysqlhotcopy. Geralmente são tabelas MyISAM que causam problemas por causa de bloqueios de tabela completos no backup.

  4. Faça backup de um banco de dados de escravo, residindo em outra máquina, mas seu provedor lhe diz que ele não pode fazer isso? Parece incompetente para mim.

por 30.09.2010 / 16:34