Servidor web e servidor de banco de dados em locais completamente diferentes

Servidor web e servidor de banco de dados em locais completamente diferentes

Quais são as implicações de desempenho de ter um servidor web (apache/php) e um servidor de banco de dados (mysql) em locais completamente diferentes com hosts diferentes.

Editar: é um aplicativo da web com uso intensivo de banco de dados, então cada página faz várias viagens ao banco de dados. O banco de dados normalmente é o gargalo em aplicações web, apenas nos perguntando se a velocidade da rede é significativa quando comparada com a velocidade típica das interações com o banco de dados.

Responder1

Isso depende muito da velocidade da conexão entre os dois locais. Algumas empresas têm backbones de alta velocidade entre seus data centers, mas pelo que parece você está olhando para duas empresas diferentes. Como a conexão passa pela Internet e por linhas fora do controle de qualquer uma das empresas, não há uma resposta sólida para essa pergunta.

Eu evitaria isso se fosse possível. Se você realmente acha que esta é a melhor abordagem, procure algo como memcache para aliviar as consultas do banco de dados.

Responder2

Quais são as implicações de desempenho de ter um servidor web (apache/php) e um servidor de banco de dados (mysql) em locais completamente diferentes com hosts diferentes.

Sim, existem implicações no desempenho e todas são negativas. Tal sistema poderia funcionar, especialmente se os dois sistemas estiverem conectados por uma VPN com um Acordo de Nível de Serviço baseado no tempo de atividade e no desempenho. Se você estiver apenas passando pela "nuvem", não terá consistência de desempenho de rede e nemuma garganta para sufocarse a conectividade ou o desempenho cair.

apenas me perguntando se a velocidade da rede é significativa quando comparada à velocidade típica das interações com o banco de dados.

Isso seria totalmente dependenteseuvelocidade da rede eseubanco de dados e aplicativo.

Há dois aspectos de desempenho da rede a serem considerados: latência e taxa de transferência. Você precisa considerar ambos.

Por exemplo, os usuários geralmente serão pacientes (até certo ponto) ao esperar por uma consulta de pesquisa. Elas vãonãoseja paciente para que cada página carregue enquanto eles navegam em um site. Embora ambos sejam vistos como latência da perspectiva do usuário, o primeiro exemplo pode ser ponderado pela taxa de transferência da rede entre o banco de dados e o servidor web, enquanto o segundo pela latência da rede.

Ou não! Só os testes dirão.

Responder3

Que tipos de consultas você está fazendo?

Se você estiver fazendo consultas complexas onde a velocidade da CPU é seu fator limitante, talvez ter uma conexão abaixo de 10 MB/s com o banco de dados e alta latência não seja tão perceptível. (mas precisariam ser consultas muito complexas ou em uma máquina com pouca potência)

No entanto,você pode ser capaz de acelerar as coisasfazendo cache na máquina do servidor web ou configurando um pequeno servidor de replicação mysql local para o servidor web que contém cópias de quaisquer dados muito acessados.

Embora ter todo o seu banco de dados localizado remotamente tenha implicações negativas no seu desempenho, tê-lo co-localizado em dois locais definitivamente tem implicações benéficas do ponto de vista da recuperação de desastres.

Responder4

Qual é o tamanho médio dos dados solicitados do servidor de banco de dados, qual é a largura de banda disponível entre os dois e qual é o tráfego intenso? Deve ser muito fácil descobrir se haverá um gargalo impressionante.

informação relacionada