?
Solved

Solaris 10 - file descriptors changing values -

Posted on 2014-02-21
12
Medium Priority
?
3,725 Views
Last Modified: 2014-02-25
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/oracle/product/agent/agent_inst/bin> prctl -n process.max-file-descriptor  -i process $$
process: 10343: -ksh
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
process.max-file-descriptor
        basic             256       -   deny                             10343
        privileged      8.19K       -   deny                                 -
        system          2.15G     max   deny                                 -


/export/home/oracle/product/agent/agent_inst/bin> 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/product/agent/agent_inst/bin> 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
0
Comment
Question by:LindaC
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
  • +1
12 Comments
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39876654
Hi Linda,

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.
0
 
LVL 22

Expert Comment

by:blu
ID: 39876675
You can just set the limit you need for the process using the prctl command.
0
 
LVL 8

Author Comment

by:LindaC
ID: 39876681
Is this going to be persistent if I quit the session?  And how can I change it if I'am login as Oracle?
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39876962
@LindaC - who is the adressee of your last questions above?
0
 
LVL 8

Author Comment

by:LindaC
ID: 39877138
You.
0
 
LVL 68

Assisted Solution

by:woolmilkporc
woolmilkporc earned 400 total points
ID: 39877726
All that follows applies to a regular user, e.g. "Oracle".

"ulimit -n 4096" (if allowed) will not persist across sessions, but I think it's good for testing anyway.

To make it "persistent" you must either

- add the above statement to the "Oracle" user's  .bash_login (for login shells) or  .bash_profile,  .bashrc or .profile (fallback if none of the previous files exists)  whatever is your standard.

- ask your system admin to raise the soft limit for nofiles (descriptors) of the Oracle user to 4096.

If "ulimit -n 4096" is not allowed due to hard limit restrictions you must ask your system admin to raise the "nofiles" hard limit  as well as the soft limit  to 4096.

If "ulimit" isn't useable at all or has no effect in your environment let's hope that "blu" drops in again to explain how to use "prctl" in this case.
0
 
LVL 8

Author Comment

by:LindaC
ID: 39877730
Thank you.
0
 
LVL 1

Expert Comment

by:Reza_a
ID: 39877792
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-descriptor=(priv,4096,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-descriptor $$
0
 
LVL 8

Author Comment

by:LindaC
ID: 39877813
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/oracle> prctl -n process.max-file-descriptor $$
process: 13020: -ksh
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
process.max-file-descriptor
        basic             256       -   deny                             13020
        privileged      8.19K       -   deny                                 -
        system          2.15G     max   deny                                 -
pasatimeDB:/export/home/oracle>
0
 
LVL 1

Accepted Solution

by:
Reza_a earned 1600 total points
ID: 39877863
As you can see there are three values you can define in file-descriptors:
basic: is equal to soft limit
privileged: is equal to hard limit
system : is maximum number can be used by system

for you case you need to to change basic value, you can change it yourself but to make it permanent ask your system administrator to run following command


projmod -U oracle -K “process.max-file-descriptor=(basic,8192,deny)” user.oracle
0
 
LVL 8

Author Closing Comment

by:LindaC
ID: 39886643
Thanks so much Reza_a.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
Every server (virtual or physical) needs a console: and the console can be provided through hardware directly connected, software for remote connections, local connections, through a KVM, etc. This document explains the different types of consol…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question