RE: unix - calc file descriptors

  • From: "Khemmanivanh, Somckit" <somckit.khemmanivanh@xxxxxxxxxxxxxxxx>
  • To: <mgogala@xxxxxxxxxxxxxxxxxxxx>, <shull@xxxxxxxxxx>
  • Date: Tue, 12 Jul 2005 08:02:13 -0700

YMMV on how dynamic modern Unix kernels are. RH is very dynamic, HP-UX
11.11 is not. The file descriptor table is static and you must be very
careful to size it correctly or you will need to incur downtime to reset
the parameter. 


Thanks! 
-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Mladen Gogala
Sent: Tuesday, July 12, 2005 8:00 AM
To: shull@xxxxxxxxxx
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: unix - calc file descriptors

Sean Hull wrote:

>I'm wondering how to calculate the number of file descriptors Oracle
will 
>use on Unix.  Obviously there will be one file descriptor for each
file, 
>and for each socket (connection through listener).  How about for IPC 
>connections?  How about for Oracle processes (oracle executable file)?

>I'm assuming device files aren't counted, as the OS or root user has
those 
>mounted & open.
>
>Perhaps someone could point me to a document, or metalink reference
which 
>details this.
>
>  
>
Sean, the best document I can point you to is here:
http://publib.boulder.ibm.com/infocenter/ids9help/index.jsp?topic=/com.i
bm.perf.doc/perf02.htm

Be warned, this is the publication about tuning the Great Enemy of 
Oracle Corp, the UDB (DB2) database.
On modern Unix boxes, the file descriptor table is dynamic and the 
number of file descriptors is set
per process, with setrusage based mechanisms and configuration files 
(/etc/security/limits.conf on RH Linux)
My experience is that if I set it to 2048 file descriptors per process, 
it will not create any problems for me.
Kernel file descriptor table is dynamic and, normally, you can not limit

it. Per process descriptor table is
a table of pointers, which contain integer offset to the system open  
inode table (each file is an inode). So, if you
set 2048 open file descriptors per process on a 64 bit machine you will 
increase the address space for 8kb.
On a database server which typically has memory measured in gigabytes,  
8k per process is not worth mentioning.
May the force be with you.

-- 
Mladen Gogala
Oracle DBA
Ext. 121


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


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

Other related posts: