serviços mysql e redis indisponíveis durante horários de alto tráfego

serviços mysql e redis indisponíveis durante horários de alto tráfego

Eu tenho um servidor web que executa alguns serviços como , Apachee alguns aplicativos. Em momentos de alto tráfego, meu servidor parece não suportar a carga pesada. Quando isso ocorre, muitas vezes quando tento acessar uma página recebo a seguinte mensagem de :MysqlRedisNodeJSmysql

Warning: mysqli_connect(): (HY000/2003): Can't connect to MySQL server on '127.0.0.1' (99)

Esta mensagem aparece de forma intermitente, de forma que na maioria das vezes se eu atualizar a página esta mensagem não aparece novamente. Além disso, não acho que isso seja um problema na minha configuração do mysql porque tenho o seguinte resultado do mysqltuner.pl o tempo todo:

[OK] Highest usage of available connections: 74% (336/450)

Da mesma forma, o Redis Server mostra uma mensagem de problema para conectar-se ao servidor:

Could not connect to Redis at 127.0.0.1:6379

Estou monitorando meu servidor nessa época e descobri que são aproximadamente 2G de RAM (sem utilizar nenhum byte de SWAP para o processo de Mysql, Redis ou NodeJS. Depois de passar algum tempo pesquisando (sem um Norte a seguir) , li um pouco sobre Portas Ephemearal Então tentei ajustar o net.ipv4.ip_local_port_rangeparâmetro para aumentar meu intervalo de portas (ajustar de 32768 61000para 10000 65000). Meu servidor web aumentou o tempo de resposta de uma média de 180 ~ 200ms para aproximadamente 6000ms e a carga. média do servidor aumenta bastante também (mas as mensagens de erro desaparecem!).

Meus aplicativos NodeJS (todos eles) usam Socket.io e respondem de uma porta diferente no meu servidor. Estou tentando descobrir qual é a solução para o problema. Isso é um problema de disponibilidade de porta? Por que o ajuste do parâmetro net.ipv4.ip_local_port_range está deixando o servidor lento?

Configuração do servidor:

  • Servidor Ubuntu x64
  • Intel Xeon E5520 Quad Core
  • 8 GB de RAM
  • 2x 1000 GB SATA 2,5" 5.400 rpm (RAID 1)
  • 2x SSD de 60 GB de 2,5" (RAID1) (coisas de banco de dados estão todas aqui)

Responder1

Se sua dúvida é sobre como monitorar melhor seu servidor durante horários de pico elevados, o que é difícil de fazer quando há pico, procuraria alguma ferramenta leve para ajudar no monitoramento. Topo, ps e dfnem sempre corte.

eu useicoletadopara capturar pontos de dados em minhas partições, memória, CPUs, Apache, MySQL e outras coisas. Ele captura os dados e salva esses pontos de dados, então você precisará de alguma outra ferramenta para recuperar os dados - por exemploalguns front-ends da web para exibir os dados.

Então, para solucionar problemas, talvez uma ferramenta para atingir seu servidor e criar um cenário de alto uso. Apache Benchmark (ab) ou Siege são boas ferramentas para isso.

informação relacionada