LindaC
asked on
Solaris 10 - file descriptors changing values -
Hi experts.
What is the real value of file descriptos?
Using oracle user to enter the server and it is the working user in this case.
I need this to be 4096, but Unix system Admin told me, the number is 8192.
Oracle is telling me that it is not set to 4096.
Who has the truth, and how to change if it is not set?
For our Cloud Control agent, we need files descriptors should be 4096
Once you do the changes, please restart the agent and monitor.
pasatimeDB:/export/home/or acle/produ ct/agent/a gent_inst/ bin> prctl -n process.max-file-descripto r -i process $$
process: 10343: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-file-descripto r
basic 256 - deny 10343
privileged 8.19K - deny -
system 2.15G max deny -
/export/home/oracle/produc t/agent/ag ent_inst/b in> ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) unlimited
nofiles(descriptors) 256
vmemory(kbytes) unlimited
/export/home/oracle/produc t/agent/ag ent_inst/b in> cat /etc/release
Oracle Solaris 10 1/13 s10s_u11wos_24a SPARC
Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved.
Assembled 17 January 2013
What is the real value of file descriptos?
Using oracle user to enter the server and it is the working user in this case.
I need this to be 4096, but Unix system Admin told me, the number is 8192.
Oracle is telling me that it is not set to 4096.
Who has the truth, and how to change if it is not set?
For our Cloud Control agent, we need files descriptors should be 4096
Once you do the changes, please restart the agent and monitor.
pasatimeDB:/export/home/or
process: 10343: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-file-descripto
basic 256 - deny 10343
privileged 8.19K - deny -
system 2.15G max deny -
/export/home/oracle/produc
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) unlimited
nofiles(descriptors) 256
vmemory(kbytes) unlimited
/export/home/oracle/produc
Oracle Solaris 10 1/13 s10s_u11wos_24a SPARC
Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved.
Assembled 17 January 2013
You can just set the limit you need for the process using the prctl command.
ASKER
Is this going to be persistent if I quit the session? And how can I change it if I'am login as Oracle?
@LindaC - who is the adressee of your last questions above?
ASKER
You.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you.
ulimit is legacy and solaris has better way of managing system resources, via projects.
You can ask your system administrator to run following command to add a project for Oracle user and specify maximum file descriptor size. this will be permanent and you can apply change to all current running process as well as new process, so you don't even need to restart oracle database.
#projadd -U oracle -K “process.max-file-descript or=(priv,4 096,deny)” user.oracle
For applying this change to all current running process:
#for p in `ps -o pid -u oracle`; do
#newtask -p user.oracle -p $p
#done
To see current value for file descriptor for current shell run this:
prctl -n process.max-file-descripto r $$
You can ask your system administrator to run following command to add a project for Oracle user and specify maximum file descriptor size. this will be permanent and you can apply change to all current running process as well as new process, so you don't even need to restart oracle database.
#projadd -U oracle -K “process.max-file-descript
For applying this change to all current running process:
#for p in `ps -o pid -u oracle`; do
#newtask -p user.oracle -p $p
#done
To see current value for file descriptor for current shell run this:
prctl -n process.max-file-descripto
ASKER
Reza_a thank you.
What the system Admin told me is that the oracle user is a "privileged"user and it is already set to 8192.
Oracle Company said is not set because when I ran as oracle user ulimit -a it gave 256
pasatimeDB:/export/home/or acle> prctl -n process.max-file-descripto r $$
process: 13020: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-file-descripto r
basic 256 - deny 13020
privileged 8.19K - deny -
system 2.15G max deny -
pasatimeDB:/export/home/or acle>
What the system Admin told me is that the oracle user is a "privileged"user and it is already set to 8192.
Oracle Company said is not set because when I ran as oracle user ulimit -a it gave 256
pasatimeDB:/export/home/or
process: 13020: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-file-descripto
basic 256 - deny 13020
privileged 8.19K - deny -
system 2.15G max deny -
pasatimeDB:/export/home/or
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks so much Reza_a.
The important thing is the the file descriptor limit of the concerned user which is 256 in your case.
You should try to raise this limit by means of "ulimit -n 4096"
If this fails you will have to ask your system admin to raise at least the "hard limit" for file descriptors of this user to 4096.
Better have them also raise the "soft limit" so the right value will be set at login which gets you rid of the need to add the ulimit command to the user's profile.