Diferença de performance de uma aplicação com cenários idênticos
30/07/2018
0
Neste fim de semana fizemos deploy de uma aplicação com base no framework Magento, que foi exaustivamente testada em vários cenários, com alta carga de usuários fazendo várias requisições ao banco de dados, como consultas, atualizações e inserções, todo o percurso dos clientes finais foi simulado.
Nos testes as configurações eram idênticas as que estavam na hora do deploy, a única diferença era o subdomínio, que estavamos usando um de homologação e depois apontamos para o www, e para nossa surpresa a aplicação ficou totalmente instável, apresentando erros de banco de dados, na verdade apenas um erro:
MySQL error 2006: mysql server has gone away
Este erro ocorreu em diversas tabelas, e na aplicação de testes não ocorreu nem uma vez, com 50 usuários simultâneos fazendo compras, e na hora do deploy estavamos com 20 usuários (segundo o analytics).
A configuração da infra é:
- 2 Web servers
- 1 File server
- RDS
- Servidor para Redis
A pergunta é: Como é possível que em casos idênticos de configuração a aplicação se comportou tão diferente? o subdomínio tem alguma influência nisto?
Obs: se precisarem de mais detalhes, favor solicitar
Obrigado
Nos testes as configurações eram idênticas as que estavam na hora do deploy, a única diferença era o subdomínio, que estavamos usando um de homologação e depois apontamos para o www, e para nossa surpresa a aplicação ficou totalmente instável, apresentando erros de banco de dados, na verdade apenas um erro:
MySQL error 2006: mysql server has gone away
Este erro ocorreu em diversas tabelas, e na aplicação de testes não ocorreu nem uma vez, com 50 usuários simultâneos fazendo compras, e na hora do deploy estavamos com 20 usuários (segundo o analytics).
A configuração da infra é:
- 2 Web servers
- 1 File server
- RDS
- Servidor para Redis
A pergunta é: Como é possível que em casos idênticos de configuração a aplicação se comportou tão diferente? o subdomínio tem alguma influência nisto?
Obs: se precisarem de mais detalhes, favor solicitar
Obrigado
Matheus
Curtir tópico
+ 0
Responder
Posts
03/08/2018
Carlos Augusto
Não tem nada relacionado o subdominio.
Olhando a documentação oficial, de fato parece que houve um consumo excessivo do banco de dados.
Perguntas:
Você possui duas infras ? Uma de teste e uma de produção replicadas ?
-se não possui os testes poderiam ter engarrafado o banco e quando você virou a chave pra produção já era tarde.
-sua aplicação permite upload ? Portanto você poderia estar recebendo arquivos grandes dos clientes que não passou no seu testes.
-Os logs da aplicação e do banco dizem algo mais específico ? Algum memória no máximo da máquina, ou erro excesso de threads.
Você poderia colocar um cache meio do caminho para os dados que não alterão tanto.
Ou colocar um banco de dados para leitura e outros dois para escrita e interligando eles (o de escrita replica para o de leitura) assim você não teria problemas de leitura e a aplicação não quebraria.
Referencias:
https://dev.mysql.com/doc/refman/8.0/en/gone-away.html
https://matomo.org/faq/troubleshooting/faq_183/
Olhando a documentação oficial, de fato parece que houve um consumo excessivo do banco de dados.
Perguntas:
Você possui duas infras ? Uma de teste e uma de produção replicadas ?
-se não possui os testes poderiam ter engarrafado o banco e quando você virou a chave pra produção já era tarde.
-sua aplicação permite upload ? Portanto você poderia estar recebendo arquivos grandes dos clientes que não passou no seu testes.
-Os logs da aplicação e do banco dizem algo mais específico ? Algum memória no máximo da máquina, ou erro excesso de threads.
Você poderia colocar um cache meio do caminho para os dados que não alterão tanto.
Ou colocar um banco de dados para leitura e outros dois para escrita e interligando eles (o de escrita replica para o de leitura) assim você não teria problemas de leitura e a aplicação não quebraria.
Referencias:
https://dev.mysql.com/doc/refman/8.0/en/gone-away.html
https://matomo.org/faq/troubleshooting/faq_183/
Responder
Clique aqui para fazer login e interagir na Comunidade :)