Apapche + php-fpm + mysql muito lento no servidor poderoso

5

Estou tentando testar o carregamento de um aplicativo LAMP que minha equipe desenvolveu e implantou no AWS Ubuntu 14.04 usando jmeter. Estamos usando o AWS CDN para servir arquivos estáticos, o mysql e o apache estão no mesmo host.

Quando há apenas um usuário fazendo coisas, o tempo de resposta é normal, entre 2 e 5 segundos, dependendo da página.

Meu objetivo é fazer com que ele responda com o mesmo tempo a 500 usuários conectados fazendo coisas ao mesmo tempo.

Eu comecei com um número menor de usuários, usando módulo mod_php e prefork em um t2.small (1vCPU, 2 Gb RAM) e fiquei satisfeito com apenas 40 usuários conectados. Uma vez que há 100, é extremamente lento com um tempo de resposta + 20s.

Eu tentei com o php-fpm e o módulo de eventos depois de alguns recursos do SO. O desempenho foi melhor, mas continua lento; + 15s para qualquer página única. Eu decidi atualizar o servidor para M4.2xlarge (8vCPU, 32 Gb RAM). Para 100 usuários conectados, ele se comporta normalmente e estou satisfeito, mas é caro e quero encontrar o melhor desempenho usando as especificações de servidor mais adequadas.

De qualquer forma, eu tentei testar este M4.2xlarge com 330 usuários conectados fazendo coisas de forma concisa, e ficou muito lento, + 15 ~ + 20s por página. Tenho tentado sintonizar a configuração do evento, e o processo do fpm sem sorte (na maioria dos casos eu tenho + 90℅ cpu, mas RAM suficiente não sendo usada é por isso que eu acho lá um limite em algum lugar).

Eu sinto que estou tão perto, mas não consigo. Eu atualizarei minha pergunta com qualquer arquivo, log ou ouptut que você pedir.

    
por user388194 29.11.2016 / 20:22

1 resposta

0

Acho que você pode definir nginx para armazenar em cache e fazer proxy reverso das solicitações para o apache e o Cloudfront. Eu fiz isso há um tempo atrás. E resolver meu problema de latência.

Minha configuração é: EC2 + RDS + Cloudfront / S3

Configurei meu EC2 com nginx de cache e solicitação de proxy de arquivos estáticos para o cloudfront que aponta para um bucket no S3. E chaching e proxy que precisam ser executados no lado do servidor para o apache. E defina meu serviço de banco de dados no RDS.

Isso resolve meu problema e diminuiu minha latência para milissegundos.

    
por 30.05.2018 / 22:27