O limite de conexões simultâneas de um servidor é um fator crítico para o desempenho do WHMCS, especialmente em ambientes com grande volume de acessos.
Esse limite define quantas conexões podem ser mantidas ao mesmo tempo, impactando diretamente na velocidade de resposta e na capacidade do sistema em lidar com múltiplos usuários simultaneamente.
O Que é o Limite de Conexões?
O limite de conexões do servidor especifica quantas solicitações podem ser processadas ao mesmo tempo. Quando esse limite é atingido, conexões adicionais podem ser recusadas ou colocadas em fila, resultando em uma experiência de uso lenta e até mesmo erros de tempo esgotado (timeout).
Para servidores que executam o WHMCS, esse limite está geralmente relacionado ao MySQL, ao Apache/Nginx e às configurações de PHP. Configurações inadequadas podem levar a problemas de desempenho, especialmente em sites com alta demanda.
Como Verificar o Limite Atual de Conexões
-
Verifique o MySQL:
- No terminal, execute o comando:
SHOW VARIABLES LIKE 'max_connections';
- No terminal, execute o comando:
- No Apache, as diretivas
MaxClients
eMaxConnectionsPerChild
definem o limite de conexões. No Nginx, a configuração é feita com o parâmetroworker_connections
. - Ajuste essas configurações conforme a capacidade do seu servidor e a demanda do WHMCS.
3. Configuração do PHP:
- No arquivo
php.ini
, parâmetros comomax_execution_time
ememory_limit
também influenciam a quantidade de conexões simultâneas. - Certifique-se de que essas configurações estejam otimizadas para o volume de dados que o WHMCS manipula.
Ajustando o Limite de Conexões
Se o seu servidor WHMCS está alcançando o limite de conexões com frequência, considere aumentar esses valores com base na capacidade do servidor:
- Aumente o
max_connections
do MySQL: Um valor entre 200 e 500 pode ser ideal para a maioria dos ambientes, mas sempre verifique o uso de memória do servidor antes de ajustes significativos. - Ajuste as Configurações do Apache/Nginx: Defina valores de
MaxClients
eworker_connections
para acomodar picos de acessos, considerando os recursos de CPU e RAM disponíveis. - Escalonamento do Servidor: Em situações de alta demanda, um upgrade de servidor ou a migração para um ambiente de hospedagem mais robusto, como um VPS ou servidor dedicado, pode ser necessário.
Monitoramento e Manutenção
É importante monitorar continuamente o uso de conexões no servidor:
- Ferramentas de Monitoramento: Utilize ferramentas como
top
,htop
ou o painel de controle de hospedagem para verificar o uso de recursos. - Auditoria de Acessos: Realize auditorias periódicas para ajustar o limite de conexões conforme o crescimento da demanda.
- Balanceamento de Carga: Para ambientes que exigem alta disponibilidade, configure um balanceador de carga para distribuir as conexões entre vários servidores.
Outra forma de ajuste
Verifique se a tabela "tblactivitylog", possui muitos registros. Se tiver, é interessante deletar estes registros.
A querie está buscando por praticamente todos os registros desta tabela, sem qualquer tipo de filtragem, que geralmente leva horas para terminar de executar. Quando este tipo de querie é executada, o banco de dados "trava" a tabela, para que nenhuma alteração ou inserção ocorra na tabela até o termino da execução.
Acontece que sua cron está programada para rodar a cada 5 minutos e ela possui uma tarefa de inserir dados nesta tabela, porém como ela está "travada", um processo fica aberto no banco de dados, com o status de "aguardando".
Então a cada 5 minutos, um novo processo/conexão é aberto no banco de dados, que também fica com status aguardando, até que um momento o limite de 151 conexões é atingindo e o banco de dados passa a não abrir mais conexões, gerando o erro relatado e erros nos sites que precisem utilizar o banco de dados.
Portantonossa recomendação é que verifique a possibilidade de limpar esta tabela e caso seja possível, otimize a querie que é executada nela.
O WHMCS possui uma documentação de como limpar a tabela e aplicar limites, segue o link: https://docs.whmcs.com/Activity_Logs
No momento reiniciei o banco de dados para limpar as conexões, porém a cron poderá apresentar lentidão e até algum erro para executar até que a Activity logs seja limpa.
Conclusão:
O limite de conexões do servidor WHMCS é um elemento chave para garantir uma experiência de usuário consistente e eficiente. Ajustar adequadamente esse limite, aliado a um monitoramento constante, permite que o WHMCS funcione com alto desempenho e sem interrupções, mesmo em momentos de maior demanda.
Quer saber mais sobre o sistema WHMCS ?
Acesse nosso site: