Monitor open files limits, etc

14,131

Solution 1

Yes, you can. /proc/<pid>/fd lists all open file descriptors. Memory usage can be seen in /proc/<pid>/{maps,smaps}. Just browse thorugh /proc/<pid> a bit and google files you don't understand :)

Solution 2

Assuming a linux server.

see global max open files:

cat /proc/sys/fs/file-max

see global current open files:

cat /proc/sys/fs/file-nr

change global max open files:

sysctl -w fs.file-max=1000000 or edit sysctl.conf

see limit on current user:

ulimit -Hn   (hard limit)
ulimit -Sn   (soft limit)

change limit on user: edit /etc/security/limit.conf to set limits for a webserver for example

apache2 soft nofile 4096
apache2 hard nofile 10000

You can have a script go through /proc and gives you some statistics:

for pid in $(pgrep apache2); do ls /proc/$pid/fd | wc -l; done
Share:
14,131
moinudin
Author by

moinudin

Islamic revert studying the din full time in UK

Updated on September 18, 2022

Comments

  • moinudin
    moinudin over 1 year

    We've been hitting the max open files limit on a few services recently. There are also a bunch of other limits in place. Is there a way to monitor how close processes are to these limits so we can be alerted when it's time to either up the limits or fix the root cause? On the same note, is it possible to view a log of these events so we know when a crash occurs it's because of hitting one of these limits?