How to deal with error: Too many open files in system?
This means your system ran out of file handles, either in your php or in another application. Make sure to close any files you open to free file handles.
To the number of handles of every program running, use (as root):
for p in $(ps -A -o pid); do
nh=$(ls /proc/$p/fd 2>/dev/null | wc -l) &&
exe=$(readlink -f /proc/$p/exe 2>/dev/null) &&
echo "$p ($exe): $nh"
done
For a more verbose output, use lsof
.
You can also increase the number of possible system file handles by modyfing /etc/security/limits.conf
(which effects changes to /proc/sys/fs/file-max
), and decrease it for the current terminal session with ulimit -n
.
Related videos on Youtube
kenorb
I'm a DevOps guy, also IT engineer programming in anything that has syntax. "Life is about making a big impact in the other people's lives."
Updated on September 18, 2022Comments
-
kenorb over 1 year
I am running a cron and output coming to my id and getting below as output:
/bin/sh: /usr/bin/php: Too many open files in system
Cron runs every 5 mins.
Have checked
/var/logs/cron
and cron is executed every 5 mins.Sites are working fine on the server.
-
dogbane over 12 years+1 In addition might be open processes. See docs.php.net/pclose
-
phihag over 12 years@fyr Clarified. Is the new version accurate?
-
fyr over 12 years@phihag: yes i removed also my post to keep the answers less redundant
-
phihag over 12 years@fyr Your answer was actually quite good, and I see no detriment in having multiple answers focus on different parts of the solution. Incorporated some good parts.
-
Admin over 12 yearsWhen I checked messages log I found, ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value and script name,I checked memory_limit =256 MB in php.ini
-
Douglas Gaskell about 5 yearsWould be great if this sorted by the number of open files.