Troubleshooting too many open files issues

Servlet failed with IOException
java.io.FileNotFoundException:(Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:106)
at weblogic.utils.classloaders.FileSource.getInputStream(FileSource.java:31)
at weblogic.servlet.internal.WarSource.getInputStream(WarSource.java:65)
at weblogic.servlet.FileServlet.sendFile(FileServlet.java:400)

In this post i’ll try to give some general guidelines on how to go about troubleshooting Too many open files exception

File descriptors are handles used by a process to identify an open file.
Too many open files exception is thrown when a particular process runs out of File Descriptors.
To troubleshoot it we need to first check the file descriptor limits.

It is logged in the server logs


Then check the max fd’s available.

cat /proc/sys/fs/file-max

Get the list of files opened

lsof –p

Get the count

lsof –p | wc –l

Check if the system has enough FD’s and what percentage of available FD’s are being used by the process.
Check with the developers whether those files should be opened at that time or not.

Increasing the File Descriptor limit can be a temporary work around.

ulimit -n 65535

2 comments

  1. Hi,

    Can we recycle stdout,stderr log in weblogic with server running.if so how can we do..can you please explain.

    Thanks in advance,
    Swaroop.

  2. Yes you can, you need to select the options here

    Home >Summary of Servers >Your Server > Logging

    You can do the rotation by size or by time.

    Thanks,
    Faisal

Comments are closed.