Dimensionar Servidor

1. Dimensionar Servidor

Americo Xavier
americoxavier

(usa Ubuntu)

Enviado em 22/02/2023 - 23:17h

Salve Galera !
Pessoal esta aparecendo um JOB para instalar um servidor MYSQL, montar é tranquilo, O Problema que o cliente tem uma demanda de 1500 conexões ao banco de dados , leitura e gravação, e estou vendo como dimensionar tal server, alguem da comunidade ja passou algo desse porte, hoje em dia HD não é problema, o que vejo nesse cenario é memoria e processamento, como dimensionar um projeto desse .
Obrigado


  


2. Re: Dimensionar Servidor

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 22/02/2023 - 23:18h

Olá!

Essa é uma dúvida muito importante para considerar quando se trata de dimensionar um servidor. Para dimensionar adequadamente um servidor que atende 1500 conexões simultâneas, é importante que o uso da CPU e da memória seja monitorado em tempo real. Além disso, é importante ter conhecimento de quais aplicações também serão executadas no servidor, incluindo MySQL, para que possa calcular a exata quantidade de memória necessária de acordo com as atividades esperadas.

Comece monitorando a carga de CPU, memória e uso de disco. Isso pode ser feito utilizando a ferramenta $$ top $$ no bash do linus, que fornece informações sobre o uso de memória, exibição de processos no sistema, informações de carga de CPU e quanto de espaço em disco ainda está disponível. O top também pode ser usado para ver o uso médio da CPU em um número de intervalos pré-configurados para fins de minitoramento e anális.

A próxima etapa seria aumentar a memória RAM do servidor. Leia o manual do seu servidor para determinar quantos slots de RAM existem e como obter o melhor desempenho do servidor. Defina a quantidade de RAM que você pode fornecer ao servidor para cumprir as necessidades atuais. Existem vários provedores de servidores que permitem upgrade de servidor, se necessário.

Além do acima, garanta que você tem uma boa conexão de internet para seu servidor. Isso ajudará significativamente na entrega, uso e estabilidade da aplicação.

Eu recomendaria fortemente solicitar uma auditoria para que todos os componentes do servidor e os critérios de dimensionamento sejam revisados e atualizados com as necessidades atuais.

Espero que isso possa ajudar na sua decisão. Boa sorte!


3. Re: Dimensionar Servidor

Buckminster
Buckminster

(usa Debian)

Enviado em 23/02/2023 - 15:30h

americoxavier escreveu:

Salve Galera !
Pessoal esta aparecendo um JOB para instalar um servidor MYSQL, montar é tranquilo, O Problema que o cliente tem uma demanda de 1500 conexões ao banco de dados , leitura e gravação, e estou vendo como dimensionar tal server, alguem da comunidade ja passou algo desse porte, hoje em dia HD não é problema, o que vejo nesse cenario é memoria e processamento, como dimensionar um projeto desse .
Obrigado


Depende o que você entende por conexões simultâneas. Caso você esteja falando de acessos, por exemplo, 500 clientes acessando um site, basta o banco de dados ter um limite de 25 a 30 conexões simultâneas.
O que se entende por conexão simultânea é, grosso modo, que você pode executar 25 comandos para o banco simultâneamente, caso você configurar para 25 o limite máximo. Uma pesquisa, uma inserção, edição simples, por exemplo, em uso normal demora meros milissegundos e normalmente é executado poucas vezes em cada acesso, liberando rapidamente essa conexão para servir outro cliente.
Caso for real o que você falou, 1.500 conexões simultâneas (não acessos), então terá que ter uma boa quantidade de memória e um bom processamento nesse servidor.
Influencia também o tipo de conexão, por exemplo, caso a maioria delas forem somente texto e não trabalhar com imagens e/ou vídeos não pesa muito. Leve em conta também que se você realizar uma requisição ao banco de dados e, após a consulta, por exemplo, não fechar as conexões, você as deixará abertas causando o problema de conexões simultâneas. Sempre deve fechar a conexão na aplicação.
O Mysql não sei se tem limite máximo de conexões. No SQL Server o limite é de 32.767 (absurdamente grande) conexões e no SQL Server o limite é por instância e não por banco de dados.

O PostgreSQL, por exemplo, aloca uma quantidade de memória por conexão, geralmente em torno de 5 a 10 MB por conexão. É importante considerar a quantia total de memória que está disponível para sua implementação antes de aumentar o limite de conexão. Para aumentar o limite de conexão, talvez você queira, primeiro, escalar sua implementação para assegurar que tenha memória suficiente para acomodar mais conexões, ou seja, quanto maior o limite de conexões mais memória RAM, o que é óbvio. Ainda no Postgres, caso você colocar o limite máximo de conexões em 215, terá de ter pelo menos 2 GB de RAM só para o banco de dados. Sei que é o Mysql, mas é só para ter uma idéia, pois os bancos de dados são parecidos no tocante ao gerenciamento de memória com algumas diferenças específicas para cada banco, claro.

O MySQL tem o recurso de pool de conexões, porém, é mais interessante deixar a aplicação gerenciar o pool de conexões:
https://dev.mysql.com/doc/x-devapi-userguide/en/connecting-connection-pool.html

Otimizações:
https://dev.mysql.com/doc/refman/8.0/en/data-size.html

Veja aqui nesse link:
https://www.fabriciolima.net/blog/2010/12/25/casos-do-dia-a-dia-diminuindo-um-problema-de-memoria-no...
Segundo o autor (é de 2010) tinha 1500 conexões simultâneas e o servidor tinha 4GB de memória e o SQL Server utilizava 2.51 GB para manipular 200GB de dados.
Apesar de ser SQL server dá para você ter uma boa base, mas hoje em dia 4GB em um servidor que deve ser robusto não dá nem para o cheiro. No mínimo uns 12 GB de RAM.
Claro, se for Linux aí pode considerar 8 ou 10GB de RAM, mas lembrando que memória RAM num servidor é sempre bom deixar uma margem a mais, pois deve se levar em conta se terá outras aplicações como firewall, DHCP, etc, além do próprio sistema operacional.

________________________________________________
Always listen the Buck!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts