
He estado enfrentando un problema con Asterisk 13.11.2 en Debian 8 donde falla después de alcanzar el límite de archivos abiertos
bridge_channel.c: Can't create pipe! Try increasing max file descriptors with ulimit -n
He logrado aumentar el límite de 65536 a 150000 usando el/etc/security/limits.conf
He añadido lo siguiente:
root soft nofile 150000
root hard nofile 150000
* soft nofile 150000
* hard nofile 150000
El resultado ulimit -n
ahora es 150000.
Cuando intento verificar el límite para el proceso Asteriskcat /proc/xxx/limits
¡Todavía tengo el límite anterior!
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 31945 31945 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 31945 31945 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
¿Cómo solucionar esto?
Respuesta1
Descomentar y cambiar el valor de MAXFILES en /usr/sbin/safe_asterisk
por ejemplo: MAXFILES = 150000
guarde el archivo y reinicie el asterisco
hecho
Respuesta2
Sospecho que su sistema utiliza systemd que ignora /etc/security/limits.conf
. En su lugar, debe configurar estos límites en el archivo de servicio de asterisco ( /etc/systemd/system/asterisk.service
o /lib/systemd/system/asterisk.service
). Probablemente quieras agregar
LimitNOFILE=150000
Tenga en cuenta que probablemente no desee editar el archivo que viene con Asterisk ya que correría el riesgo de que sus cambios se sobrescriban con la próxima actualización de Asterisk. En su lugar, recomendaría crear un archivo /etc/systemd/system/asterisk.d/10-file-descriptors.conf
con la línea anterior. Systemd luego aumentará automáticamente el archivo de servicio oficial con su configuración.
Respuesta3
Establezca las siguientes opciones en asterisk.conf
[options]
internal_timing = no
maxfiles = 999999