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

Considero uma aplicação em Laravel EXTREMAMENTE pesada, com 1 CPU e 1Gb de ram tem que cuidar muito o que cada processo está rodando. Antes de encrontrarmos a solução devemos responder as perguntas abaixo:

  • Qual é o numero máximo de conexões que são criadas no DB?
  • Qual o número de processos máximos que o apache pode criar?
  • Como você está fazendo esse teste de carga (Gatling, k6)? E qual o script você está usando?
  • Quanto de RAM está sendo usado na sua aplicação no momento que trava? está com SWAP ativo?
Carregando publicação patrocinada...
1

Qual é o numero máximo de conexões que são criadas no DB?
Segundo o phpMyAdmin são 17 conexões

Qual o número de processos máximos que o apache pode criar?
Se estiver falando dos workers, foi setado pra 500

Como você está fazendo esse teste de carga (Gatling, k6)?
Estou utilizando JMeter, basicamente cerca de 15 requisições HTTP na home durante 10 segundos

Quanto de RAM está sendo usado na sua aplicação no momento que trava? está com SWAP ativo?
Bate uns 60-70% de ram com swap ativo

1

500 processos do apache, cada processo consome cerca de 3 a 5MB de RAM. Caso todos os processos estejam abertos ao mesmo tempo você precisará de 1.5GB (na melhor das hipóteses) só pra manter esses processos abertos (sem rodar nenhum código).

Para 1 GB de ram vc deve limitar muito isso, o servidor não pode receber tanta requisição, 10 a 15 simultâneas no máximo. Toda a carga restante deve ficar enfileirada em um proxy como o Nginx (ou um apache dedicado)