Aumenta a velocidade do pequeno servidor MySQL

1

Eu trabalho em uma pequena equipe de desenvolvimento - PHP / MySQL app.

Cada desenvolvedor interno tem o Apache / PHP instalado e acessa uma caixa do Windows 7 com o MySQL 5.1 instalado. Box é 32bit, Pentium D, 4GB de RAM, nada mexido com my.cnf. A rede está em um switch gigabit, NICs gigabit.

Estou curioso porque esta configuração é tão lenta. Acessar um banco de dados vazio neste servidor da minha área de trabalho é muito lento. 5 segundos ou mais apenas para listar bancos de dados.

Eu não espero que seja tão rápido quanto o nosso cluster de produção @Softlayer, mas 5 segundos para exibir um banco de dados vazio parece um pouco demais.

Alguém fez coisas específicas para acelerar uma configuração de desenvolvimento de escritório utilizando um servidor de banco de dados?

    
por jaredsten 17.11.2010 / 04:02

4 respostas

5

Isso pode soar um pouco estranho, mas verifique se o servidor MySQL é capaz de resolver domínios de forma rápida e correta. Alguns navegadores de consulta enviam autenticação com cada comando e, se você tiver resolvedores lentos, ele mata o desempenho.

Tivemos um problema muito semelhante quando nosso DNS interno estava inativo para manutenção.

    
por 17.11.2010 / 04:08
2

adicione em my.cnf:

skip_name_resolve no [mysqld_safe] e [ mysqld] seções

    
por 17.11.2010 / 09:54
1

Não deve ser tão lento com base na configuração mencionada, mesmo sem otimização / ajustes. Muito provavelmente há algum outro problema.

Tente usar clientes mysql na mesma máquina com Windows 7 e veja se eles estão lentos ou não. Pelo menos isso ajudará a decidir se o problema está relacionado à rede ou não.

Se o problema estiver relacionado à rede, a captura de pacotes usando o wireshark para ver o que está realmente ligado é realmente útil na solução de problemas de atraso.

Se o problema for uma verificação relacionada ao host:

  1. Quanto espaço no disco rígido é gratuito e a partição é muito fragmentada.
  2. Algum outro processo está comendo RAM
  3. Algum outro processo utilizando CPU
  4. Percorra os logs do MySQL para ver se o MySQL relatou algum problema.
por 17.11.2010 / 04:17
0

Os registros mais seguramente ajudarão aqui -

Eu começaria com algum monitoramento básico do MySQL - algumas ferramentas que podem ajudar aqui são:

  1. top (padrão no linux)
  2. mtop: link
  3. innotop: link

Você também pode recorrer à ferramenta de monitoramento do MySQL na linha de comando (cli)

# mysqladmin processlist 
# mysqladmin proc

Infelizmente - muitas pessoas usarão os modelos padrão disponibilizados em / usr / share / mysql

Eu RECOMENDO ALTAMENTE TROPÁ-LOS - eles são antigos e não valem a pena usar pelas seguintes razões:

  • Configurações inválidas para algumas versões do sistema operacional ou do MySQL (por exemplo, thread_concurrency e skip-locking)
  • Adicionando variáveis de array enormes que você pode não entender quais são
  • O desempenho de testá-los em relação a outras configurações é mais do que questionável

Depois de executá-los - e fazer algum ajuste - deixe o mysql rodar por pelo menos 24-48 horas e depois use as seguintes ferramentas de diagnóstico:

  1. Sintonizador MySQL (apenas digite wget mysqltuner.pl no linux para baixar então chmod755 mysqltuner.pl e execute fazendo ./mysqltuner.pl; -)

  2. mysqlidxchk

    (Instalar pelo wget     hackmysql.com/scripts/mysqlidxchk-1.1     chmod 755 mysqlidxchk * mv     mysqlidxchk * mysqlidxchk) então execute     fazendo algo assim: (     ./mysqlidxchk - geral     / var / lib / mysql / general.log)

Se você precisar de ajuda para instalá-los, por favor, avise-nos

PS - a maioria destes são apenas scripts do Linux - mas ajudará muito com o ajuste e gerenciamento do seu servidor mySQL.

Finalmente - yse uma boa ferramenta de análise de log como mysqlsla e mysqlreport para relatórios de status

    
por 17.11.2010 / 08:30