4 votos

Calamar, quedando sin descriptores de ficheros en Ubuntu

Estoy corriendo Squid 2.7 en Ubuntu 10.04 64bits. Yo tenía el problema de Squid corriendo fuera de descriptores de archivo, con el siguiente error que muestra en /var/log/squid/cache.registro:

ADVERTENCIA! Su caché se está ejecutando fuera de filedescriptors

He comprobado con:

squidclient mgr:info | grep 'archivo descri'

y mostró que sólo había 1024 descriptores de archivo disponibles.

He cambiado /etc/security/limits.conf, añadiendo esto al final:

* soft nofile 32768
* hard nofile 32768
proxy           soft    nofile          32768
proxy           hard    nofile          32768

Agregó que esta en /etc/squid/squid.conf:

max_filedescriptors 32768

También cambió el /etc/default/squid:

SQUID_MAXFD=32768

Nada funcionaba. Al final he editado el /etc/init.d/squid para agregar "ulimit -n 32768":

#!/bin/sh -e
# upstart-job
#
# Symlink target for initscripts that have been converted to Upstart.

set -e
ulimit -n 32768
<... snipped  ...>

Que funcionó! :)

Yo tenía que hacer todo esto bajo el estrés de vivir, la producción de servidor Squid ser muy lento, así que estoy seguro de que esta NO es la manera correcta de hacerlo.

Pero ¿cuál es la manera correcta de hacerlo?

2voto

Abdussamad Puntos 199

Tienes que agregar la línea de ulimit en el script de inicio de squid como aumentar max_filedescriptors en squid. Ésos son los dos pasos esenciales. Ya no tienes que compilar squid de fuente para aumentar este límite. Era algo que tenía que ver con versiones muy antiguas de calamar.

0voto

asparagino Puntos 143

/etc/init.d/squid es un enlace simbólico a /lib/init/upstart-job, por lo que su propuesta original plantea el ulimit advenedizo todos los servicios.

Estoy de acuerdo que la pregunta original/solución eleva el límite del descriptor de archivo, así que gracias por eso. Idealmente una solución que no descriptores de fichero a través de la Junta sería más agradable.

0voto

Khaled Puntos 21517

Yo tenía el mismo problema de antes. Yo no era capaz de aumentar el número de descriptores de archivo de quid.

En adición a lo que has hecho, he configurado squid mediante las siguientes opciones de configuración:

./configure --prefix=/usr/local/squid --enable-start-stop-daemon --with-filedescriptors=65536 --enable-storeio=ufs,aufs --with-aufs-threads=10

La parte importante para el caso es:

--with-filedescriptors=65536

Después de hacer esto y reiniciar squid, tengo el valor máximo de descriptores de archivo: 65536.

Por supuesto, esto requiere de calamar para ser instalado de origen no desde el comando:

apt-get install squid

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: