Increase the open file descriptors value specific to your UNIX 2006-11-17 - By Didier Boiteux
Back On Friday 17 November 2006 11:16, Dirk.Lohmann@(protected) wrote: > Hello liste, > we got this message from Oracle when we start it "Increase the open file > descriptors value specific to your UNIX kernel". Now we think, we can slove > the Problem when we increase the /proc/sys/fs/file-max. The value is now > 131072. But we don?t know which value is the correctly. And, is it the > right way ? > > Dirk Lohmann
Dirk,
I gave a general answer to limits in the thread http://lists.suse.com/archive/suse-oracle/2006-Sep/0058.html But every time I dig again on this subject, I have the unsettling impression to learn something new...
In your case, you should setup the limit in /etc/sysconfig/oracle. Here are the defaults value.
FILE_MAX_KERNEL1072 corresponds to /proc/sys/fs/file-max which is a limit for all the processes combined.
The settings FILE_MAX_SHELLe536 is the limit of open file descriptors for the oracle process. (It will be used to set ulimit -Hn/ulimit -Sn for this process only.)
Now which limits to use?
- For the system-wide limit (FILE_MAX_KERNEL - /proc/sys/fs/file-max ) That is not easy to say as you would need to guess the number of open file descriptors for all process combined. Also, as root has read-write permissions on /proc/sys/fs/file-max, you can write whichever value in there. Should you put too high a value, the kernel will run out of memory. It will not necessarily crash but will create bad secondary effects.
So the system-wide limit is limited by your RAM amount. I was told a rough estimation of around 4-8k of RAM per file. On 32bit x86 systems this limit can be pretty low because the files can be only put into lowmem (900MB max, usually much less being available as other subsystems need it too).
One remark: From man 5 proc : If you increase /proc/sys/fs/file-max, be sure to increase /proc/sys/fs/inode-max to 3-4 times the new value of /proc/sys/fs/file-max, or you will run out of inodes.
- For the per-process limit ( FILE_MAX_SHELL / ulimit -Hn / ulimit -Sn ) You should set up your hard limit for nofile to be well below the "filesystem wide" limit, so as not to let one process/user getting hold of all the available resources.
( The kernel constant NR_OPEN imposes a superior limit to this value. It is defined in /usr/src/linux/linux/fs.h , to 1024*1024 for SLES9 i386. )
-- To unsubscribe, email: suse-oracle-unsubscribe@(protected) For additional commands, email: suse-oracle-help@(protected) Please see http://www.suse.com/oracle/ before posting
|
|