3
respostas

[Dúvida] [DESEMPENHO] Aplicação laravel desempenho divergente do local para o online

Bom dia estou com um problema em um projeto pessoal em que o desempenho da minha aplicação local está mais rapido do que a minha aplicação online, no local no windows com a aplicação rodando com o comando "php artisan serve" o tempo de booting está muito divergente de quando subi a aplicação em um servidor, utilizo a biblioteca laravel debug bar para verificar os tempos que mostrarei nas imagens abaixo.

Tempo de booting local Tempo de booting localTempo de booting no servidor online

Tempo de booting no servidor online

Já verifiquei as configurações do php e deixei exatamente as mesmas a única diferença é que no online seria um servidor plesk, com ngix e apache. Já configurei o jit do php e opcache o que me ajudou na melhora de desempenho de 1,5s pra 700ms, mas não consegui melhorar a performance dessa parte.

Queria saber se tem alguma configuração que poderia me ajudar para melhorar esse desempenho.

Agradeço desde já quem ajudar

Atenciosamente Luiz Shibata

3 respostas

Olá Luiz! Tudo bem?

Vamos tentar identificar algumas possíveis causas e soluções:

  1. Configurações do Servidor:

    • Verifique se o servidor online tem recursos suficientes (CPU, memória) para suportar sua aplicação. Às vezes, servidores de hospedagem compartilhada podem ter limitações de recursos.
    • Confirme se o opcache está devidamente configurado e ativo no servidor online. Isso pode ter um impacto significativo no desempenho.
  2. Configurações do PHP:

    • Certifique-se de que as configurações do PHP no servidor (como memory_limit, max_execution_time, etc.) estão otimizadas para sua aplicação.
    • Verifique as extensões do PHP necessárias para o Laravel e se estão habilitadas.
  3. Configuração do Servidor Web:

    • O uso de Nginx como proxy reverso para Apache pode adicionar alguma latência. Verifique se a configuração está otimizada.
    • Considere usar apenas Nginx ou apenas Apache, dependendo do que oferece melhor desempenho para sua aplicação.
  4. Cache e Sessões:

    • Utilize cache de configuração e rotas do Laravel (php artisan config:cache e php artisan route:cache) para melhorar o tempo de boot.
    • Verifique como as sessões estão sendo gerenciadas. Sessões em arquivos podem ser mais lentas que em banco de dados ou cache.
  5. Banco de Dados:

    • Certifique-se de que as consultas ao banco de dados estão otimizadas e que há índices apropriados.
    • Teste a latência da conexão com o banco de dados no servidor online.

Espero que essas dicas ajudem a melhorar o desempenho da sua aplicação no servidor online.

Atenciosamente Armano Alves

Essa parte eu verifiquei e fiz no meu online configurei opcache e jit justamente para verificar fiz cache e retirei as extensões que não estou utilizando, no caso de indices acontece que essa demora acontece até quando são paginas só com um phpinfo();

Coloquei aqui para verificar se alguém teve algo parecido com a execução do booting do laravel que está alto

Oi Luiz,

Entendo sua frustração com a diferença de desempenho entre o ambiente local e o servidor online 😜.

Mesmo com as otimizações que você já aplicou, o tempo de booting ainda está alto no servidor.

Já que o problema persiste até mesmo em páginas simples com phpinfo(), podemos descartar problemas com o código da aplicação em si.

Como você mencionou que o servidor online utiliza Plesk com Nginx e Apache, pode haver um gargalo na comunicação entre esses dois servidores web.

O Nginx como proxy reverso para o Apache pode adicionar uma latência extra.

Uma alternativa seria tentar configurar o Nginx para servir diretamente os arquivos estáticos e passar apenas as requisições PHP para o Apache, ou até mesmo usar apenas um dos dois servidores.

Outro ponto a verificar é a configuração do PHP-FPM, que é o processo que executa o PHP no servidor.

Verifique se o número de processos e a configuração de memória estão adequados para a sua aplicação.

Uma configuração inadequada pode causar lentidão no processamento das requisições.

Além disso, mesmo que você tenha configurado o opcache, verifique se ele está realmente funcionando corretamente no servidor online.

Você pode verificar isso através do phpinfo() ou usando um script que mostre as configurações do opcache.

Para saber mais: Documentação oficial do PHP sobre o Opcache.

Não desista! Continue investigando e você vai encontrar a solução. 🤔 🧐