AJUDA lentidão mysql client [RESOLVIDO]

1. AJUDA lentidão mysql client [RESOLVIDO]

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 23/10/2014 - 18:37h

Srs. preciso muito da ajuda de vocês.

Um servidor web (vou chama-lo de servidor A) está muito lento para se conectar a um banco de dados (vou chama-lo de BD A).

Quanto tento conectar em qualquer outro servidor de banco de dados, a conexão ocorre em tempo normal ( 1 a 2 segundos), porém quanto tempo acessar o servidor de banco de dados (BD A) que está em produção, o tempo de conexão sobe para 10 s.


Observações:
1 - A lentidão não é para realizar queries, é apenas para estabelecer conexões.
2 - Se eu tentar realizar a conexão por ip ou nome o resultado é o mesmo.
3 - Qualquer outra máquina que não seja o servidor A que tente acessar o DB A, tem um tempo normal de conexão.
4 - Já reinstalei o client do mysql porém sem sucesso.
5 - traceroute para o servidor BD A é normal.
6 - não creio que o problema seja o servidor, pois outras máquinas conseguem acessa-los normalmente e o servidor A consegue acessar outros bancos normalmente.


Versão do client
mysql Ver 14.14 Distrib 5.5.33, for Linux (x86_64) using readline 6.2
Sistema Operacional
Opensuse 12.3









  


2. MELHOR RESPOSTA

Airton Lastori
alastori

(usa Outra)

Enviado em 24/10/2014 - 12:46h

Você já tentou ver com o utilitário resolveip o tempo de resolução do DNS? Já tentou outros testes no nível de rede comparando as máquinas "boas" com a "ruim" com ping, traceroute ou ferramentas similares?

No server MySQL tente rodar:
$ time host xx.xx.xx.xx
Substitua pelo IP da sua máquina client. Se na saida do comando o tempo para Real for alto, você tem um problema de DNS.

Outra checagem é ver se há algum problema com cálculo de permissões do usuário. Faça SELECT USER(), CURRENT_USER() nas máquinas boas e ruins e veja se usa o mesmo usuário. Se forem diferentes, talvez você possa criar um usuário com permissão de acesso remoto ('usuario'@'%') e testar usando o mesmo usuário.





3. Re: AJUDA lentidão mysql client [RESOLVIDO]

Airton Lastori
alastori

(usa Outra)

Enviado em 23/10/2014 - 22:29h

Pode ser um problema na resolução do DNS. Você pode tentar adicionar a configuração skip-name-resolve no my.cnf e reiniciar para testar.


4. Re: AJUDA lentidão mysql client [RESOLVIDO]

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 24/10/2014 - 10:12h

alastori escreveu:

Pode ser um problema na resolução do DNS. Você pode tentar adicionar a configuração skip-name-resolve no my.cnf e reiniciar para testar.


Obrigado pela resposta alastori
Mas essa configuração já está ativa no servidor.


5. Re: AJUDA lentidão mysql client [RESOLVIDO]

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 27/10/2014 - 11:25h

alastori escreveu:

Você já tentou ver com o utilitário resolveip o tempo de resolução do DNS? Já tentou outros testes no nível de rede comparando as máquinas "boas" com a "ruim" com ping, traceroute ou ferramentas similares?

No server MySQL tente rodar:
$ time host xx.xx.xx.xx
Substitua pelo IP da sua máquina client. Se na saida do comando o tempo para Real for alto, você tem um problema de DNS.

Outra checagem é ver se há algum problema com cálculo de permissões do usuário. Faça SELECT USER(), CURRENT_USER() nas máquinas boas e ruins e veja se usa o mesmo usuário. Se forem diferentes, talvez você possa criar um usuário com permissão de acesso remoto ('usuario'@'%') e testar usando o mesmo usuário.





Ping traceroute Oks
Não tenho esse programa host instalado em qual pacote o consigo?

O usuário está com acesso liberado a todas as máquinas, a conexão é realizada, porém demora muito (entre 6 a 20s para o client se conectar ao banco). E isso para um único usuário.

Fiz uma avaliação pelo tcpdump.
O que descobri foi que a demora está no servidor mysql em responder a requisição de conexão.





6. Re: AJUDA lentidão mysql client [RESOLVIDO]

Airton Lastori
alastori

(usa Outra)

Enviado em 27/10/2014 - 12:19h

O utilitário é o "time": time host xx.xx.xx.xx
Veja: http://man7.org/linux/man-pages/man1/time.1.html
Você tem que rodar isso na máquina que está o MySQL server apontando para suas máquinas clients e comparar os valores.

Tentando esclarecer melhor seu cenário:
-você tem vários hosts CLIENT (A, B, C) e vário hosts com MySQL SERVER (X, Y, Z);
-o MySQL SERVER Z de produção apresenta lentidão para estabelecer a conexão quando ela vem do CLIENT A;
-para outros CLIENTs B ou C o problema não ocorre;
-a demora também não ocorre tentando conectar de A para Y ou de A para X;
-fiquei confuso quando você diz que acontece a lentidão "para um único usuário": você quer dizer que se você tentar conectar do CLIENT A no SERVER Z a demora ocorre apenas para um usuário mysql específico? Se este for o caso, parece ser um problema com o cálculo de permissões para o usuário. Já tentou um DROP USER e depois um novo GRANT para o usuário problemático?



7. Solução

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 29/10/2014 - 17:00h

Agradeço a ajuda.



Realizei um teste pelo tcpdump e percebi que a demora maior era para o servidor de banco em responder a requisição de conexão.


Comecei então a verificar o dns e descobri que o problema estava no DNS da máquina cliente ( não respondia a requisições de dns reverso ). Acertei o endereço DNS e funcionou.


Obrigado a todos que ajudaram.










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts