
Espero que você esteja bem - estou executando um site Wordpress com Woocommerce em um servidor web OpenLiteSpeed que, sob uso intenso de PHP, começa a mostrar erros de tempo limite 504. Estou hospedando tudo na AWS e estou lutando para identificar as causas dos erros 504 e o que poderia ser melhorado para evitá-los. Aqui estão alguns detalhes:
Configuração da AWS:
- O servidor web é instalado em uma instância t3.medium com Ubuntu 20.04 amd64 e 50 Gb de armazenamento EBS (otimização de E/S habilitada). Cerca de 10 Gb estão sendo usados a partir de agora.
- Executando PHP 7.4 e
- Estou usando duas distribuições do CloudFront para CDN: uma para servidor de imagens (em S3) e outra para servidor de arquivos CSS/JS.
- Eu tenho um ELB para gerenciar o tráfego para o servidor Web. O tempo limite de inatividade está definido para 300 segundos.
- Eu tenho uma instância RDS db.t3.small (100Gb gp2) executando o Mariadb 10.5.13, o tamanho do banco de dados é de cerca de 1,5gGb.
- Estou usando o Redis ElastiCache com três nós cache.t3.micro.
Estatísticas do site:
- O site tem cerca de 1.000 acessos por semana.
- Cerca de 350 páginas de produtos e 50 páginas.
- O tamanho da página varia de 500kb a 13,5Mb.
Qual é o problema?
- O site está atingindo o tempo limite e gerando erros 504 ao usar funções PHP pesadas, como upload de produtos (e anexar imagens a eles), upload de imagens, liberando o cache do OLS várias vezes (cerca de 3-4) em um pequeno intervalo de tempo ou navegando o site abrindo várias páginas de produtos e adicionando-as ao carrinho.
- EC2 CPUUtilization mostra picos máximos de 99%, mas a largura de banda da rede parece boa, atingindo picos máximos de 2,0 Gb e os créditos de CPU permanecem estáveis.
- As conexões de banco de dados atingem o pico de 50 por minuto e a utilização da CPU oscila entre 20% e 30%.
- O crédito estourado permanece estável.
- stderr.log mostra muito "Limite máximo de processos filhos atingido: 35, extra: 0, atual: 35, ocupado: 35, aumente LSAPI_CHILDREN.".
Capturas de tela (instância EC2):
O que eu tentei até agora:
- Tentei aumentar o máximo de conexões e processos filhos para 350, mas o problema de tempo limite permanece.
- Aumentei o limite de memória do php.ini para 512 MB, mas não fez nenhuma diferença.
- Tentei aumentar o armazenamento de banco de dados de 30 Gb para 100 Gb, sem sorte.
- Tentei aumentar o armazenamento da instância EC2 de 30 Gb para 50 Gb, mas novamente sem sorte.
Perguntas/ajuda necessária:
- Com base na minha configuração, quais métricas (e sua agregação) devo procurar para identificar as causas raiz do tempo limite? A AWS tem tantas informações que estou confuso sobre o que poderia realmente mover a agulha.
- Devo ampliar minha instância do EC2 para permitir mais potência de CPU? 0r devo ampliar minha instância do RDS? ou nenhum? Estou com orçamento limitado, então esta opção não é realmente viável.
- Existe alguma configuração no servidor web que eu possa tentar? Eu poderia enviar meu arquivo conf se isso ajudar.
- Devo simplesmente mover tudo para uma hospedagem gerenciada e viver feliz para sempre?
desde já, obrigado