Corrigindo a falha "WARNING! Your cache is running out of filedescriptors" - Squid2.7STABLE9 Slackware 12

Há algum tempo tive problemas de desempenho/lentidão nos acessos a internet na empresa onde trabalho. Após analisar, vi que se tratava de uma falha no Squid, que demandava de um limite maior no "filedescriptor" do sistema operacional. Por fim consegui solucionar o problema e resolvi postar aqui um passo a passo de como solucionei tudo.

[ Hits: 36.357 ]

Por: Rafael Bruno de Almeida em 31/08/2010


Reconfigurando o Squid (finalizando)



Finalizando o artigo, agora é hora de reconfigurar o serviço de cache (SQUID), aqui no meu ambiente utilizo a versão 2.7.STABLE9 que já contempla um parâmetro que faz referência ao valor do file descriptors, só a configuração deste parâmetro sem a recompilação do kernel não resolveu meu problema aqui, portanto, deverão ser realizados todos os passos descritos neste artigo.

NOTA: para versões inferiores, o parâmetro utilizado para fazer tal referência deverá ser apontado no momento da compilação do Squid, este parâmetro é: --with-maxfd=16384

Vamos a configuração.

Acesse o arquivo de configurações do Squid e insira informações conforme descrito abaixo:

# vi /etc/squid/squid.conf

** inserir o parâmetro:

max_filedescriptors 16384

** saia do arquivo e salve: esc + :x!

Pare o processo do Squid.

Inicie o Squid novamente.

Assim, resolvi meu problema aqui com desempenho e performance dos acessos.

Referências

http://en.wikipedia.org/wiki/File_descriptor <Acesso em: 18 AGO 2010>

http://www.vivaolinux.com.br/topico/Kernel-Linux/compilar-o-kernel-do-slackware <Acesso em: 18 AGO 2010>

http://br-linux.org/tutoriais/001804.html <Acesso em: 18 AGO 2010>

Página anterior    

Páginas do artigo
   1. Introdução
   2. Recompilando o kernel
   3. Reconfigurando o boot do servidor
   4. Reconfigurando o Squid (finalizando)
Outros artigos deste autor

Implantando o Cacti (gerador de gráficos) em HTTP Seguro (HTTPS)

Implantando o Nagios em HTTP Seguro (HTTPS)

Backup de roteadores Cisco com o TFTP + Pancho - Slackware 13

Leitura recomendada

Proxy transparente com Squid, com controle de banda e bloqueio por horários

Projeto Squid

Mandriva 2006 - Configurando servidor proxy transparente completo

Squid 2.6 com autenticação e bloqueio de sites, downloads, Orkut, MSN, vídeos e googletalk

Proxy em paralelo com o mikrotik

  
Comentários
[1] Comentário enviado por paulopastoriza em 31/08/2010 - 08:53h

O filedescriptors ficam ocupados quando o processo do squid não é encerrado corretamente.
Para liberar os filedescriptors só reiniciando o servidor.

Para aumentar os filedescriptors em tempo de execução:
sysctl -w fs.file-max=64000

Para tornar permanente edite o arquivo /etc/sysctl.conf file, e adicione o parâmetro:
fs.file-max = 64000

Obs: Isto para o CentOS e Ubuntu.

[2] Comentário enviado por rafaelalmeida em 31/08/2010 - 10:07h

Bakana...
Só que eu também tinha tentado algo semelhante.. e.. sem sucesso.. pra falar a verdade no meu server este arquivo /etc/sysctl.conf não existe ou não consegui encontra-lo...
O bakana é que outros usuários podem tentar desta forma e se conseguirem com certeza será bem mais fácil que recompilar tudo.. que alias dá um baita de um trabalhão!! =) De qualquer forma fica o artigo aê para os que não conseguirem... Vlw por contribuir!!

[3] Comentário enviado por ---Anonymous--- em 05/09/2010 - 10:29h

Velho, estou tendo tendo o mesmo problema com o Squid, no começo ele acessava a Net de boa, depois ficou lento a bagaça.
Tentei achar o esse caminho /usr/include/bits/typesizes.h mas o diretorio bits com o tupesizes.h não existe.
Tentei do jeito do PAULO PASTORIZA, man também não consegui.
Infelismente.

[4] Comentário enviado por ton.work em 06/09/2010 - 19:35h

O caminho:
"/usr/src/linux/include/linux/posix_types.h"
"define INR_OPEN 1024"

é o mesmo que,

"/usr/src/linux/include/linux/posix_types.h"
"define __FD_SETSIZE 1024"

mas não encontrei o "define INR_OPEN 16384"

[5] Comentário enviado por rafaelalmeida em 08/09/2010 - 11:19h

Opa,

Na verdade o artigo contem um erro, segue abaixo os arquivos a serem alterados:

vi /usr/include/bits/typesizes.h

DE: #define __FD_SETSIZE 1024

PARA:

#define __FD_SETSIZE 16384

vi /usr/src/linux/include/linux/posix_types.h

DE: #define __FD_SETSIZE 1024

PARA:

#define __FD_SETSIZE 16384

vi /usr/src/linux/include/linux/fs.h

DE: # define INR_OPEN 1024

PARA:

# define INR_OPEN 16384

Repeti o mesmo arquivo para duas trocas, foi um descuido, acima segue os arquivos corretos.

Lembrando: (atenção o "#" deve ser mantido).

[6] Comentário enviado por KnowX em 08/09/2010 - 12:40h

rafaelalmeida, como vai, tudo bem?

Não lembro se este comando funciona no Slackware 12, porém tente e observe o resultado.

Você colocou os FDs em 16384, o comando abaixo aumenta os FDs para 32768 sem a necessidade de recompilação do Kernel, porém não sei se a performance do Servidor é a mesma.

#ulimit -HSn 32768

confira os FDs com o comando:

#ulimit -n

Um abraço a todos.

[7] Comentário enviado por rafaelalmeida em 08/09/2010 - 12:55h

Opa! tudo certo KnowX!

Esse comando funciona sim! porém eu tinha que manter o Putty aberto pra funcionar, se eu fechasse o Putty ele voltava o valor pra 1024.. Daí tivemos de ficar uma semana com o Putty aberto aqui para que o valor não se alterasse novamente, até que fiz as ações citadas no artigo e funcionou legal (até hoje rs.).. No mais obrigado por contribuir!!

[8] Comentário enviado por romalmeida em 06/09/2011 - 09:32h

Prezado Rafael Almeida

Fiz essas alterações que para acertar de 1024 para 16384.

Mas a minha dúvida, eu não tenho que descomentar a linha retirando a #?

Abs,


[9] Comentário enviado por rafaelalmeida em 06/09/2011 - 09:40h

Opa!

Então, quando fiz mantive todos os "comentários" sim, e tudo funcionou desta forma. Valeu!

[10] Comentário enviado por nerdzinbr em 06/06/2016 - 02:43h

E pra quem tem ele instalado no windows server, qual o procedimento ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts