hi, After a few weeks running fs without issues, i got the error "Too many open files", i understand that i reach the limit of allowed open files in the system. But it must be trigger for some "zombie fds" opened.. Is there a way to get the "zombie" fds open by fs? I use lua scripts to check db mapping, so in every script i make sure to call dbh:release() before returning. I also use esl sockets to check FS events. in the running process i have the following limits: cat /proc/10975/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 245760 8388608 bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes unlimited unlimited processes Max open files 999999 999999 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 128123 128123 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority unlimited unlimited Max realtime timeout unlimited unlimited us currently i see the number of files change: while :; do echo -n "$(date +'%F %T') "; lsof -p $(cat /var/run/freeswitch/freeswitch.pid) | wc -l; sleep 5; done; 2018-01-22 17:20:46 78938 2018-01-22 17:20:53 78920 2018-01-22 17:20:59 78902 2018-01-22 17:21:06 78911 2018-01-22 17:21:12 78883 2018-01-22 17:21:18 78883 2018-01-22 17:21:25 78899 2018-01-22 17:21:31 78913 2018-01-22 17:21:37 78925 2018-01-22 17:21:44 78911 2018-01-22 17:21:50 78913 2018-01-22 17:21:56 78935 I see lot of entries: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME freeswitc 2429 root *257u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *258u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *260u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *261u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *262u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *264u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *265u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *266u 0000 0,11 0 10734 anon_inode grep "0000" openfiles | wc -l 78951 but I don't understand the output for the TYPE= "0000"... thanks for the help. -- Saludos / Regards / Cumprimentos António Silva
this issue was fix between 05/2017 and now, putting a new version of FS git master solves my issue. sorry for the noise. On 01/22/2018 05:40 PM, António Silva wrote:
hi,
After a few weeks running fs without issues, i got the error "Too many open files", i understand that i reach the limit of allowed open files in the system. But it must be trigger for some "zombie fds" opened..
Is there a way to get the "zombie" fds open by fs?
I use lua scripts to check db mapping, so in every script i make sure to call dbh:release() before returning. I also use esl sockets to check FS events.
in the running process i have the following limits:
cat /proc/10975/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 245760 8388608 bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes unlimited unlimited processes Max open files 999999 999999 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 128123 128123 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority unlimited unlimited Max realtime timeout unlimited unlimited us
currently i see the number of files change:
while :; do echo -n "$(date +'%F %T') "; lsof -p $(cat /var/run/freeswitch/freeswitch.pid) | wc -l; sleep 5; done; 2018-01-22 17:20:46 78938 2018-01-22 17:20:53 78920 2018-01-22 17:20:59 78902 2018-01-22 17:21:06 78911 2018-01-22 17:21:12 78883 2018-01-22 17:21:18 78883 2018-01-22 17:21:25 78899 2018-01-22 17:21:31 78913 2018-01-22 17:21:37 78925 2018-01-22 17:21:44 78911 2018-01-22 17:21:50 78913 2018-01-22 17:21:56 78935
I see lot of entries: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME freeswitc 2429 root *257u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *258u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *260u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *261u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *262u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *264u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *265u 0000 0,11 0 10734 anon_inode freeswitc 2429 root *266u 0000 0,11 0 10734 anon_inode
grep "0000" openfiles | wc -l 78951
but I don't understand the output for the TYPE= "0000"...
thanks for the help.
-- Saludos / Regards / Cumprimentos António Silva
participants (1)
-
António Silva