sexta-feira, 18 de outubro de 2013
Servidor lento mas cpu memoria disco e swap estão sem problemas
*Esse post se refere ao sistema operacional Centos. Porém, sua ideia pode ser aplicado a todo SO que faz esse mesmo tipo de limitação.
==Sintomas==
- Você possui um servidor rodando um serviço muito importante para sua empresa (ex.: página web da empresa).
- Você percebe que o servidor está lento, tanto para abrir as páginas, quanto para conectar remotamente via ssh entre outras tarefas. E essa lentidão aparece e some com alguma frequência.
- Você verifica o uso de CPU, memória RAM e disco disponível, uso de SWAP, quantidade de processos web rodando, etc... e percebe que está tudo funcionando na mais perfeita ordem.
==Causa==
Muito provavelmente seu servidor está precisando de um incremento no limite de arquivos abertos por usuário/processo (como a maioria dos processos executam com usuário expecífico podemos dizer por processo).
O Centos limita a quantidade de arquivos que um usuário pode abrir por questões de segurança, pois, um script malicioso pode abrir arquivos indefinidamente.
Por padrão é pertido a abertura de 1024 arquivos. Caso esse limite tenha sido atingido e um processo necessite abrir um arquivo novo, essa ação ficará em espera até que seja liberada uma "vaga" de abertura de arquivos.
Essa espera é o que resulta na lentidão "sem explicação".
==Solução==
Aumente o limite de arquivos abertos por usuário:
- Utilize o comando abaixo para ver a situação atual de seu servidor (veja o campo "open files").
ulimit -a
- Edite o arquivo "/etc/security/limits.conf" e altere as seguintes linhas:
.
.
.
#* soft core 0
#* hard rss 10000
.
.
.
- Altere para:
.
.
.
* soft nofile 16384
* hard nofile 16384
.
.
.
Onde 16384 será o novo limite de arquivos aberto por usuário. Escolha o número de acordo com sua necessidade e recursos de seu servidor. Quanto maior o número, mais memória será consumida.
- As alterações serão efetivadas a medida que os serviços forem reiniciados, sugiro reiniciar a máquina inteira pois achar os serviços que estão em espera não será muito fácil.
reboot
- Execute novamente o comando "ulimit -a" e veja as novas configurações.
Assinar:
Postagens (Atom)