5 votes

Squid manque de descripteurs de fichiers sur CentOS 7

J'exécute Squid 3.3 (EPEL) sur CentOS 7 et j'ai récemment obtenu le message d'erreur suivant dans ma page d'accueil cache.log

WARNING! Your cache is running out of filedescriptors

Je suis un peu perplexe à ce sujet, car il semble que je dispose de nombreux descripteurs :

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

Squid a également été compilé avec ce drapeau :

--with-filedescriptors=16384

Squid confirme que ceux-ci sont effectivement disponibles au démarrage :

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

Cependant, cette erreur continue de se produire. Peu de temps après l'enregistrement de cette erreur, le squid semble également atteindre 100 % de l'unité centrale ou utiliser la quasi-totalité de la mémoire du système à plus de 90 %, ce qui fait chuter la vitesse d'Internet ou la bloque indéfiniment. Le fait de tuer le processus et de le redémarrer résout le problème, mais il finit par se reproduire.

J'ai un total de 8 Go de mémoire disponible, ce sont les paramètres relatifs à la mémoire et au cache dans mon système d'exploitation. squid.conf

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

J'utilise également ufdbguard et des plugins d'aide supplémentaires pour l'authentification Kerberos et NTLM.

Des conseils ?

0 votes

Fournir la sortie dmesg

0 votes

Rien d'utile, surtout un pare-feu

0 votes

Avez-vous essayé des solutions comme celle-ci : cyberciti.biz/faq/ ?

2voto

Michael Hampton Points 232226

Le nombre de descripteurs de fichiers est défini dans le fichier d'unité systemd. Par défaut, il est de 16384, comme vous pouvez le voir dans /usr/lib/systemd/system/squid.service .

Pour passer outre, créez localement une surcharge de l'option /etc/systemd/system/squid.service qui modifie la quantité de descripteurs de fichiers. Cela devrait ressembler à quelque chose comme ceci :

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

[Service]
LimitNOFILE=65536

Ne pas modifier le fichier par défaut /usr/lib/systemd/system/squid.service car il sera restauré à chaque fois que le paquet sera mis à jour. C'est pourquoi nous le plaçons dans un fichier local pour remplacer les valeurs par défaut.

Après avoir créé ce fichier, informez-en systemd :

systemctl daemon-reload

et ensuite redémarrez Squid.

systemctl restart squid

0 votes

Il est intéressant de noter que squidclient mgr:info | grep 'file descri' rapporte toujours la même valeur, bien qu'elle ait été modifiée dans systemd. Je pense que le fait qu'il soit compilé avec cette valeur est un problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X