Estou com dificuldades para solucionar um problema de gargalo no meu servidor Ubuntu 12.04.
Eu uso um site de intranet muito pequeno fora do servidor. Há solicitações da web (SOAP, HTML, REST, etc) em um ritmo de várias solicitações pequenas a cada minuto, mas tudo em todo o servidor da Web não é muito difícil. O servidor é usado apenas como um servidor da Web e um servidor de arquivos SMB para um punhado de usuários.
Cerca de 10 dias atrás e muitas vezes por dia desde então, o servidor fica lento. Todas as conexões SMB são temporariamente interrompidas, o tempo limite das solicitações de ping é interrompido, as sessões SSH são interrompidas e o servidor da Web deixa de responder. Este "apagão" acontece por um período de 30 segundos a alguns minutos. Depois que o servidor alcança, todos os tempos de resposta das solicitações e os tempos de resposta do serviço retornam ao normal.
Eu usei no topo para reduzir o problema ao que parece ser o Apache e, possivelmente, o MySQL rastreando o servidor. Nenhum outro processo durante o período de blecaute levanta suspeitas. Durante esses períodos de blackout, o número de processos do Apache aumenta de 1-4 para 16+ processos. Cada processo está levando de 5 a 10% da CPU, então, cumulativamente, a CPU está vinculada a 100%. O MySQL também está trabalhando acima do normal, mas é apenas cerca de 15% da CPU.
Eu pesquisei os arquivos de log do Apache (access.log e error.log) pelo período de blecaute e não consigo localizar solicitações ou problemas suspeitos ou anormais durante esse período. Todas as solicitações parecem normais antes do blecaute, pois as solicitações são feitas em horários normais. É claro que, durante o blecaute, nenhum acesso é registrado porque o servidor não está lidando com as solicitações da Web.
Eu pensaria que se houvesse uma solicitação da web fazendo o servidor trabalhar duro, o Apache ainda lidaria com todos os outros bem, mantendo assim o processo do Apache apenas um pouco mais alto. A contagem de processos de 16 a 20 para o Apache faz com que eu me pergunte por que o servidor não está respondendo a nenhuma das solicitações. Talvez seja outro problema além do Apache ??
Estou bastante confiante de que o Apache é o culpado e causa da desaceleração, mas ainda não tenho experiência suficiente para saber como pesquisar isso ainda mais.
Qualquer outro conselho sobre as etapas de solução de problemas que eu deveria seguir seria de ajuda.