Executando verificação de segurança...
1

[Resolvido] Site demora para responder 1 vez a cada 15 páginas, quando acessado no horário de pico

Estrutura:

  • Meu domínio é gerido pela cloudflare
  • Tenho uma VPS na Contabo
  • Uso CyberPanel com OpenLiteSpeed (Versão Gratis)
  • Meu site tem 100.000 acessos por dia e quase 3.000.000 de pageviews por dia

Estou com um problema que não faz sentido, sempre que o site está no horário de pico, quando estou navegando por ele, percebo que em alguns momentos quando clico em algum link do site, a página fica processando, e só depois de alguns segundos (Entre 7s e 30s) ele começa a carregar a página. E isso sempre se repete quando acesso entre 10 a 30 páginas, 1 ou 2 delas dá essa travada.

O engraçado é que meu site tem um subdomínio (en.meusite.com) que está apontado para o mesmo VPS com os mesmos arquivos, e isso não ocorre nesse subdomínio.

Já verifiquei tudo que estava a meu alcance,
Já migrei pra um VPS melhor (12core 64ram 800tb NVMe e banda de 800mb)
Meu banco de dados estava com max_connections=151 e alterei pra 500 e nada mudou.
O OpenLiteSpeed tem disponibilidade para 80.000 conexões https, e só utiliza 4.000 nos horários de pico.

O processador do VPS não passa dos 30% nos horários de pico.
E a memória só usa 2gb e + 5gb de cache no max

Não uso wordpress, fiz meu site do zero, mas não tem nenhum error no log de PHP, e me certifiquei das consultas MySQLi serem otimizadas.

O que não faz sentido é que se fosse problema no VPS, não era pra acontecer o mesmo sintoma no subdomínio também?

Não sei mais o que pensar, alguém pode me dar uma ideia?

-- Editado 23/04/2024 --

A memória está livre, e o processamento tbm, mas tô achando que pode ser alguma configuração de cache da database. Tem algumas consultas que demoram cerca de entre 0,07 e 0,20s para serem concluídas.

Mas não sei ao certo o que mais precisa ser configurado no MariaDB pra aguentar essas consultas.

-- Editado 24/04/2024 --

Pessoal, obrigado a todos que responderam.
O problema era realmente o VPS Compartilhado da Contabo, pra sites pequenos ele é suficiente, mas pra sites grandes não funciona muito bem, parece que os outros usuários do mesmo servidor ficam roubando recursos.
Comprei um Dedicado da Contabo com 12cores e 24threads (24vCores) e acabou o problema, estou usando 4% do processador no pico do dia e 1% quando o site não tem muita gente. É mais poder de processamento que eu realmente preciso, mas pelo menos eu não vou mais me preocupar com desempenho tão cedo.
Vou deixar passar algum tempo e depois criarei mais uma edição abaixo contando minha experiência com o Dedicado.

3

Primeiro, meus parabéns. Meu sonho é ter um site com tantas visitas/usuários!

Eu não conheço o OpenLiteSpeed só conheço o Nginx
Não sei como seu site precisa e se essas páginas podem ser cacheadas!

Cacheie tudo que der pra cachear ainda no OpenLiteSpeed(se der, creio que de)

Como você usa PHP, não sei usa o cache do PHP(já em opcode) OPCACHE se não usar use!
Use PHP FPM(caso não use)

As vezes seu projeto esta gastando processamento em páginas que podiam estar cacheadas pelo seu servidor!

Não sei se você paga pelo cloudflare, mas da pra fazer algumas configurações lá tbm.

Você usa monitoramentos? Use, para ver o que esta acontecendo por dentro.
As vezes pode ser uma coisa simples, um errinho em alguma thread

2

Olá Uriel, obrigado por responder

O OpenLiteSpeed é similiar ao Apache e o Nginx

O cache seria bom se meu servidor não aguentasse, ou estivesse trabalhando em Over, mas o processador está tranquilo.

Eu uso o Cloudflare na versão gratuita, e ele me ajuda entregando algumas imagens nos servidores CDN da cloudflare. Tenho 800mb de rede, e uso em média 50 a 90mb/s, então a rede tbm está tranquila.

E por último, se fosse algum problema de função ou problema no código, era pra acontecer o mesmo quando eu acessasse o site pelo subdomínio (en.meusite.com) mas acesso mais de 300 páginas tranquilamente sem acontecer esse problema no subdomínio. E esse subdomínio funciona como uma alias, é exatamente igual o domínio.

1

Não seriam processos/threads diferentes o dominio e o sub?

Acho que o correto agora é um monitoramento mais de perto mesmo!
Ver todos os logs e colocar(caso não tenha) um prometheus ou similar para acompanhar bem.

1

Não sei dizer, vou tentar achar um jeito de analisar mais de perto, e até tentar comprar um servidor Dedicado para ter os hardwares só pro meu site.

Vou tentar também uma última questão, que é passar os links das imagens para um subdomínio tipo (static.meusite.com), pra ver se desafoga as requisições do domínio principal, não sei se vai mudar algo, mas posso tentar. Não queria muito mexer com isso, pois se eu cometer um pequeno deslize posso perder bastante imagens indexadas nos buscadores. Mas pesquisei bastante como fazer os redirecionamentos 301 via .htaccess

Depois eu deixo aqui os resultados.

1

Pelo que você esta falando, as imagens não vão fazer nada de diferente!
Alias eu nem mexeria nisso!

Não creio que seja banco de dados.
Se você usa o mesmo banco pra o dominio principal e o sub. Tudo ficaria lento junto.

Sei que o PHP usa threads para cara requisição e PHP-FPM faz cache em formato opcode
para as requisições que se repetem.

Se não usa use PHP-FPM. Não custa tentar :)

Gostaria de saber quando você você resolver e como resolveu o problema!

Abraços

1
1

Entendi, li acima como resolveu achei um resolução de aumento de infra bastante simples! Você pegou um dedicado gigante! kkk

Eu uso Contabo tbm! Tem uns 10 anos!
Abraços

1
1
1

Isso acontece apenas com você ou usuários do seu site?

Se acontec só com você troque de navegador e veja se continua, se você nao sabe, tente coletar feedbacks para saber se acontece com outras pessoas tbm.

1

Acontece com todo mundo,

A memória está livre, e o processamento tbm, mas tô achando que pode ser alguma configuração de cache da database. Tem algumas consultas que demoram cerca de entre 0,07 e 0,20s para serem concluídas.

Mas não sei ao certo o que mais precisa ser configurado no MariaDB pra aguentar essas consultas.

1

Pode ser o banco de dados também, verifique quando tempo está demorando usando o Developer Tools do navegador na aba Rede/Network, ve quantos MS demora para retornar uma página se usa o banco de dados, se demorar muito então é isso, faça testes nela.

1

O MySQL em PHP não tem como ver no Developer Tools, mas não era o banco de dados, o problema foi resolvido, fiz uma atualização na pergunta.

-1
1