RE: Low FD limit a performance issue?

  • From: Yong Huang <yong321@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Fri, 4 Nov 2011 08:48:13 -0700 (PDT)

> Open Files/Open File Descriptors [ID 787780.1]
> explains the difference between file-descriptors and open files

That article is good, except some shell commands are not accurate.

lsof | grep '4448'
should be
lsof -p 4488
in case the string "4488" occurs somewhere else, such as "14488".

ls -l /proc/4448/fd/ | wc -l
should be
ls /proc/4448/fd/ | wc -l
to avoid counting the first line.

For our purpose, all we need is to check /proc/<pid>/fd and 
/proc/<pid>/limits. lsof is useful when you want to see the fd to 
network connection association, or see open files not allocated 
fd's to, perhaps used with fuser to see if a file is being used.

When Dave sees error about fd limit reached, this command can be run:

for i in $(ps -fu oracle | grep -v PID | awk '{print $2}'); do echo -n "$i: "; 
ls /proc/$i/fd | wc -l; done | sort -n -k 2

It lists oracle processes with sorted number of open fd's. 
Unfortunately, the error probably happened in the past and you 
won't have a chance to catch the moment. If you do catch it, I'd love to 
see which process opens too many fd's.

Yong Huang
--
//www.freelists.org/webpage/oracle-l


Other related posts: