Aplicações e BDs no mesmo Servidor

Caros Amigos,
Boa Noite !

Amigo, aqui na empresa temos 1 servidor. Nesse servidor temos 1 aplicação em SC com diversos bancos de dados. É um banco de dados para cada cliente. Atualmente são uns 100 clientes. Funciona tudo 100%, quando precisamos atualizar os BDs atualizamos com nosso software de atualização de bases automaticamente. Não temos hoje nenhum problema de lentidão, mais pensando no futuro a minha dúvida é:

O que é melhor? O sistema em um Servidor e os Bancos de dados em outros servidores? Ou tudo no mesmo servidor como está hoje?
Se eu colocar os Bancos em outro servidor e apontar no ambiente de produção o IP do servidor de destino será que o PING ficará muito lento?

Aos que tem experiência neste assunto, me ajudem nesta decisão.

Forte Abraço !

Watson,

Pelos padrões atuais, se você trabalha com vários bancos de dados é melhor que existam 2 servidores: o de sistemas e o de bancos. É o que as grandes empresas utilizam hoje em dia e não vejo nenhuma lentidão na relação sistema X banco.

Minha opinião.

  1. O Servidor do Banco pode ficar na mesma rede fisica?

2)Se for mysql, este tem um tratamento especial para host=localhost, que da uma performance altíssima.

Se o Servidor for em outra rede e a conexão tiver que ser via WAN, ideal usar INNODB somente nas tabelas mais concorrentes criar um usuário para cada banco e usar conexão persistente. Configurar manualmente o Servidor aumentado os caches em memória ao máximo. Usar jobs agendados para otimizar diariamente as bases.

Mas se puder aumentar a performance mexendo no hardware do servidor, mantenha do jeito que está.

  1. Para servidores separados fisicamente deve-se ligar os dois servidores via placa de rede gigabit sem passar por um switch ou com switch dedicado somente para interligar os servidores. Pois conforme o consumo de banda na rede pode haver latência entre os servidores.
    2.a) Quando se tem um bom hardware. Eu pessoalmente, contrariando todos, acredito melhor deixar tudo no mesmo servidor. Assim eliminamos a latência da rede e facilita o gerenciamento de backup que fica centralizado em uma única máquina. E o outro servidor pode atuar como espelho.
    2.b) Sou a favor de separar os servidores somente se a threads começam a gerar gargalo de I/O no disco rígido. Mas isto pode indicar falta de memória.
    Se você possui bases grandes, acima de 20gb, é bom deixar um servidor separado somente para o SGDB. Pois há coisas em certos SGDB, como o buffer innodb do mysql que deve ser alto. E isto consome bastante memória.
  2. Virtualizar servidores em uma máquina parruda. Isto concordo até certo ponto. Pois temos que lembrar: VM´s sempre terão rendimento inferior á uma máquina real. Já vi pessoas colocando mais de 3 VM´s em um único servidor. Separa 10 GB de memória dinâmica para cada VM e etc. Enquanto o acesso é normal tudo bem. Mas na hora do vamos ver não espere que elas hajam como servidores reais. O rendimento será menor.
    Isto acontece com a maioria dos clouds. Todos são VM´s e o sujeito contrata para depois falar: Ué o hardware é bom. Porque está lento hoje? Vou ligar para o suporte do cloud. Eles esquecem que por vezes os recursos são alocado dinamicamente.
  3. Cada caso é um caso. Pense sempre nos próximos 5 a 10 anos. Um bom servidor deve aguentar no mínimo 5 anos em uso direto. Sem muitas mudanças no hardware e apenas otimizações nos seus serviços. Se existe previsão de grande crescimento na base de dados (mínimo de 10Gb ao ano) e nos acessos opte por deixar separado.
1 Curtida

Haroldo,
Sobre usar INNODB somente em certas tabelas.
Tenho restrições quando o outro engine escolhido for o MyISAM.
Lembre-se que MyISAM é herdado do ISAM. Usado, por exemplo, pelo COBOL.
MyISAM costuma corromper fácil quando a tabela fica acima de 1GB.

Por isso eu disse que não devem ser tabelas concorrentes.

Eu utilizo MYISAM em muitas tabelas minhas:
Tabela de Cidades, Estados, Ramos de Atividade, Profissões, CFOP,

São tabelas que sofrem somente leituras e raramente , muito raramente sofrem updates e inserts…

Somente dando uma atualizada no meu pensamento.
Grande concorrência de threads, acessos simultâneos, etc.
Além de pedir servidores separados ainda podem exigir um balanceamento de carga no banco e/ou servidor web.

2 Curtidas