ulimit command

Hi,

I have a Sun machine 5.8 and would like to modify the ulimit parameter for numner of file descriptors.

the output of plimit <process name> is:

4100: process_name
resource              current         maximum
  time(seconds)         unlimited       unlimited 
  file(blocks)          unlimited       unlimited
  data(kbytes)          unlimited       unlimited
  stack(kbytes)         8192            unlimited
  coredump(blocks)      unlimited       unlimited
  nofiles(descriptors)  30000           30000 
  vmemory(kbytes)       unlimited       unlimited

I need to increase the number of file descriptor by 512. I will insert this command on the script:

ulimit -n 512

The script will look something like this:

#!/usr/bin/ksh -a
#
NAME=testprocess
export NAME
ulimit -n 512
exec /opt/bin/process "$@"

I haven't used this command before. Will this increase the existing size to 512 or will it reduce the nofiles to 512?

I am unable to determine the nofiles using the plimit. how would I know the current settings for nofiles? so that I can know if the "ulimit -n 512" command is correct.

Also, does it have a maximum value for that one? And also the impact on the system resources as well.

I can not test this one until I am sure since I will be doing it on a live network.

Thanks.

Remember you may need to update /etc/system for the changes you plan on making to be persistent across reboots.

dudes,

i need this very urgent....

i executed the command plimit <PID>... i was expecting an output either 256, 512, 1024, etc but instead the output was 30000.... this is different.

i am afraid that if a change it using "ulimit -n 512" the 30000 will become 512... which is very small. i need your opinion about this.

please help

It will not increase, but rather will set it to 512, just tested that. For the max value of nofiles, i really dont know :confused: but you can always try "ulimit -n 30512" and let us know the result ...

hmmm... the problem is that when i tried to check the other related settings like "plimit <PID>"

it tells me that it was already at its maximum value:

                  current          maximum
nofiles         30000            30000

i also tried to look at /etc/system and has the following value:

set rlim_fd_max=1024
set rlim_fd_cur=256

the question is can i still be able to set the nofiles value greater than 30000? is the setting at the /etc/system not related to the setting in the pfiles/plimit command?

I see, you still can change it (nofiles) system wide with root, i did mine just like that

ulimit -a ; uname -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         unlimited
stack(kbytes)        8192
coredump(blocks)     unlimited
nofiles(descriptors) 50000
vmemory(kbytes)      unlimited
SunOS ---- 5.8 Generic_xxxxxx-xx sun4u sparc SUNW,Sun-Fire-480R

but if the limit is still 30000 on yours then I suspect some login profile is calling ulimit to fix it at 30000 if so just make the necessary change

i need to change only a particular file....

example, scriptA has the following plimit <PID of scriptA>value:

               current           maximum
nofiles       30000            30000

you mean if i insert the following:

#!/usr/bin/ksh -a
#
NAME=testprocess
export NAME
ulimit -n 40000
exec /opt/bin/process "$@"

it will not give any error? what is the sample output of the plimit <PID of scriptA> value afterwards?

thanks for the help.

just an update....

you can only increase the file descriptor upto the maximum set in the /etc/system. to change it change the "rlim_fd_max" parameter to the desired value and reboot the server.

by then you can increase the file descriptor using ulimit.

ciao!

:smiley:

hello!

Please... I have a doubt

For example:

ulimit -n 1024

In this section and for this moment, that's Ok!
But if I do a reboot or close the section this value is not keep and I need to put the command again...

How can I configure this value of ulimit for all users and forever??

Thanks!!