Squid está sem codificadores no CentOS 7

5

Estou executando o Squid 3.3 (EPEL) no CentOS 7 e recentemente recebi a seguinte mensagem de erro no meu cache.log

WARNING! Your cache is running out of filedescriptors

Estou um pouco confuso com isso porque parece que tenho amplos descritores disponíveis:

squidclient mgr:info | grep 'file descri'
Maximum number of file descriptors:   16384
Available number of file descriptors: 16326
Reserved number of file descriptors:   100

O Squid também foi compilado com este sinalizador:

--with-filedescriptors=16384

O Squid confirma que eles estão disponíveis na inicialização:

2015/08/18 21:11:45 kid1| With 16384 file descriptors available

No entanto, esse erro continua ocorrendo. Não muito tempo depois de este erro ser registado, o processo squid parece também atingir 100% da CPU ou utilizar quase toda a memória do sistema em mais de 90%, fazendo com que a velocidade da Internet diminua ou diminua indefinidamente. Matar o processo e reiniciá-lo resolve, mas eventualmente acontecerá novamente.

Eu tenho um total de 8 GB de memória disponível, esses são os parâmetros relacionados à memória / cache no meu squid.conf

cache_dir ufs /var/spool/squid 16000 16 256
cache_mem 1024 MB

Eu também estou usando ufdbguard e plugins auxiliares adicionais para a autenticação Kerberos e NTLM.

Algum conselho?

    
por James White 18.08.2015 / 22:23

1 resposta

2

O número de descritores de arquivos é definido no arquivo de unidade do systemd. Por padrão, isso é 16384, como você pode ver em /usr/lib/systemd/system/squid.service .

Para substituir isso, crie um /etc/systemd/system/squid.service substituindo localmente, o que altera a quantidade de descritores de arquivo. Deve ser algo como isto:

.include /usr/lib/systemd/system/squid.service

[Service]
LimitNOFILE=65536

Não edite o arquivo padrão /usr/lib/systemd/system/squid.service , pois ele será restaurado sempre que o pacote for atualizado. É por isso que colocamos em um arquivo local para substituir os padrões.

Depois de criar este arquivo, informe ao systemd sobre ele:

systemctl daemon-reload

e reinicie o squid.

systemctl restart squid
    
por 27.08.2015 / 17:24