Hola buenos días,
Hace un par de días comenzaron a aparecer este tipo de mensajes en el full.log de una centralita Asterisk 11.21.2 y tuve que reiniciarla:
[2016-04-27 11:06:51] DEBUG[23368][C-000011f5] rtp_engine.c: rtp-engine-local-bridge: Oooh, something is weird, backing out
[2016-04-27 11:06:51] ERROR[23368][C-000011f5] channel.c: ast_read() on chan 'SIP/ccm-prim-00003a5e' called with no recorded file descriptor.
[2016-04-27 11:56:47] ERROR[4866] acl.c: Cannot create socket
[2016-04-27 11:51:31] ERROR[14823][C-00000fb5] res_timing_timerfd.c: Failed to create timerfd timer: Too many open files
[2016-04-27 12:25:29] ERROR[27337][C-00000ef6] cdr_csv.c: Unable to re-open master file /var/log/asterisk//cdr-csv//Master.csv : Too many open files
Estuve buscando info. y si no me confundo lo que ocurrió es que se superó el número máximo de file descriptor abiertos:
# cat /proc/`pidof asterisk`/limits
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 unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 15795 15795 processes
Max open files 1024 4096 files
Max locked memory unlimited unlimited bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 15795 15795 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Los usuarios me reportaron varios problemas antes de reiniciar la centralita y ver posteriormente los logs:
- Al tratar de llamar estaban mucho rato a la espera hasta que se realizaba la llamada (Y no era problema del DNS)
- Cuando alguien llamaba desde otra centralita en la que tengo un mini contact center a usuarios de la centralita en la que tuve los problemas parecía como si las extensiones estuvieran ocupadas.
- La centralita parecía estar sobrecargada y algunas conversaciones se oían mal.
- No se podía acceder a un interfaz web que tengo en la centralita
¿Alguien de aquí sabe qué problemas pueden ocurrir al alcanzar el max open file descriptors de asterisk? ¿Puede tener sentido lo que me estaba pasando?
Una vez vistos los posibles efectos he estado buscando la causa del problema y creo que la he encontrado, de manera que el número de file descriptors no llegue nunca a ese máximo nunca más (o eso espero). Podía aumentar el nº max de file descriptor abiertos pero no sería la solución al problema.
Ahora mismo estoy monitorizando el sistema con un cron ejecutando ls /proc/`pidof asterisk`/fd/* |wc -l y escribiendo el resultado en un documento por si volviera a aparecer el problema
un saludo y gracias de antemano
Miguel Sanz