Solaris 10 resource controls - /etc/system vs /etc/projects
Can someone please explain to me why, if we set the set the max shared memory segment in the /etc/system file using 'set shmsys:shminfo_shmmax=4294967296' we are seeing 800GB instead of 4GB when running 'prctl -n project.max-shm-memory':
/etc/system:
* Oracle 10.2.0 parameters
set shmsys:shminfo_shmmax = 4294967295
set shmsys:shminfo_shmmin = 1
set shmsys:shminfo_shmmni = 200
set shmsys:shminfo_shmseg = 20
set semsys:seminfo_semmni = 100
set semsys:seminfo_semmsl = 260
set semsys:seminfo_semmns = 1024
set semsys:seminfo_semopm = 100
set semsys:seminfo_semvmx = 32767
set rstchown = 0
* Setting in for Oracle 10 upgrade
set noexec_user_stack = 1
With /etc/system populated running prctl produces:
# /bin/prctl -n project.max-shm-memory -i process $$
process: 3428: sh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 800GB - deny -
What is setting the maximum size for a shared segment to 800GB when using the /etc/system file to set the parameter?
If we remove the settings from /etc/system and use the normal default projects settings we get 1/4 of the physical memory, which is what we would expect to see.
Please note we will be using projects to control resources - I am just curious as to the effect of the /etc/system [set shmsys:shminfo_shmmax=4294967296] setting above
I have since found the answer - the 800GB is coming from shminfo_shmmax multiplied by shminfo_shmmni. This has been confirmed on another system with different values.
Similar Messages
-
Shminfo_shmmax in /etc/system does not match project.max-shm-memory
If I specified 'shminfo_shmmax' in /etc/system and hava the system default in /etc/project(no change is made), the size of 'project.max-shm-memory' is 10 times larger than 'shminfo_shmmax'.
#more /etc/system // (16MB)
set shmsys:shminfo_shmmax=16000000
#prctl -n "project.max-shm-memory" -i project user.root
=> will display like below.
project: 1: user.root
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 1.49GB - deny -
system 16.0EB max deny
1.49GB is 10 times larger than 'SHMMAX'. If I add more entries /etc/system like below, max_shm_memory will become even larger.
#more /etc/system
set shmsys:shminfo_shmmax=16000000
set semsys:seminfo_semmni=2000
set shmsys:shminfo_shmmni=2000
set msgsys:msginfo_msgmni=2048
After I reboot with the above /etc/system and no change /etc/project(all default, no values added)
# prctl -n "project.max-shm-memory" -i project user.root
project: 1: user.root
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 29.8GB - deny -
system 16.0EB max deny -
Can anyone shed light about this area how to configure SHMAX in /etc/system right?We saw similar behavior and opened a case with Sun.
The problem turns out to be that the (deprecated) /etc/system to (new) project resource limits isn't always one-to-one.
For example process.max-shm-memory gets set to shmsys:shminfo_shmmax * shmsys:shminfo_shmmni.
The logic here is that under the /etc/system tunings you might have wanted the maximum number of segments of the maximum size so the system has to be able to handle that. Make sense to some degree. I think Sun updated one of their info docs on the process at the end of our case to make this clearer. -
Finding the resource controls of a given project
Currently, one can use "*prctl*" to list resource control limits of a given project. However, to gather the statistics of the usage by all processes associated with a given project in relation to these resource control limits, we would need to execute multiple commands/utilities.
For some, information outputs can be direct, yet for others, outputs can be indirect. Even then it is not guaranteed that all statistics are collected.
I thought of developing a command/utility acting like "sar" or "vmstat" that gathers statistics on usage of all resource controls for a given project.
Could you please drop in your suggestions on the features such a command should have ?
ThanksDo you know how to find the minimum value of a collection? You will want to do the same here but search for the minimum difference instead of the minimum value. Math.abs() will help deal will negative differences.
-
Installing Oracle 9i on Solaris 10 SPARC, /etc/system vs. projects
Can anyone verify that the kernel tuning parameters that used to be set in /etc/system on Solaris 8 have any effect in Solaris 10? All the documentation I can find suggests that most (if not all) of these settings have been marked obsolete or removed in Solaris 10. It is my understanding that these settings (such as shared memory) need to be set by means of a project. If we are running with no project setup in Solaris 10 are we pretty much running "untuned" ? Thanks
Some links...
New or change parameters in Solaris 10
http://docs.sun.com/app/docs/doc/817-0404/appendixb-16?a=view
Solaris Tunable Parameters manual
http://dlc.sun.com/pdf/817-0404/817-0404.pdfWe have carried over the following parameters from /etc/system on our old Solaris 8 DB servers. We just want to know if these settings are having any effect. We are currently seeing some performance issues on T5220's with 32GB RAM (old DB servers were SunFire 4800's).
shmsys:shminfo_shmmax obsolete as of Solaris 10
shmsys:shminfo_shmseg removed in Solaris 10
shmsys:shminfo_shmmin removed in Solaris 10
shmsys:shminfo_shmmni obsolete as of Solaris 10
semsys:seminfo_semmns removed in Solaris 10
semsys:seminfo_semmni obsolete as of Solaris 10
semsys:seminfo_semmsl obsolete as of Solaris 10
semsys:seminfo_semopm obsolete as of Solaris 10
semsys:seminfo_semvmx removed in Solaris 10
rlim_fd_max=8096 In the Solaris 8 version, the default is 1024. In later Solaris releases, the default is 65,536
rlim_fd_cur=1024 Still supported
noexec_user_stack Still supported
Actual /etc/system settings...
set shmsys:shminfo_shmmax=31457280000
set shmsys:shminfo_shmseg=16
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=128
set semsys:seminfo_semmns=11000
set semsys:seminfo_semmni=0x402
set semsys:seminfo_semmsl=4096
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
set rlim_fd_max=8096
set rlim_fd_cur=1024
set noexec_user_stack=1
Edited by: [email protected] on Mar 6, 2009 12:25 PM -
Installing Oracle VM SPARC 3.1.1 on T4-4 swith Solaris 5.10 update 11 (1/13) - not having /etc/system updated with values - is this a manual update or is there required patch?
for /etc/system /etc/project for primary/control ldom and all guest ldoms, is there any patch that shold be installed to set memory settings when standing up guest-ldoms or the primary
/controller ldom? Running 8.6.0.b ILOM.
On another system finding shmsys, hires_tick, semsys and a few exclude settings in /etc/system file for ldoms on another T4-4 running 8.5.0.c ILOM.
Hopefully I've just missed a patch.
- JC/etc/system is by default "empty" and contents only commented parameters or instructions.
And patches will not change this file. The shmsys, hires_tick, semsys and the other settings including /etc/project customizations that you have in the other machine was set manually or added during softwares configuration. -
How to confirm changes to /etc/system on Solaris 9?
Hi: I added the following lines to the /etc/system and rebooted the machine.
set msgsys:msginfo_msgmnb=1073741824
set msgsys:msginfo_msgmax=65536
set msgsys:msginfo_msgtql=10000000
Anybody know a command on solaris 9 that will show these changes have taken into effect?
Thanks
Ravithanks.
ipcs -b does work
Hmm, can you see them with ipcs?
7/M. -
Sd/ssd max throttle in solaris 10 etc/system
Guru!
I need to add any of following lines to /etc/system file
for my new Hitachi storage (attached to the Soalris10 Box)
setsd: sd_max_throttle = 16mm
setssd:ssd_max_throttle =16
I want to know the difference between them and also how can I make sure that the parameter is added/active....?
Owais Hyder.Hi.
Be carefull when edit /etc/system
Correct:
set sd: sd_max_throttle = 16
set ssd:ssd_max_throttle =16
Reboot require for applay changes.
For check current value:
echo "sd_max_throttle /U" |mdb -k
Docs:
http://docs.oracle.com/cd/E26505_01/pdf/E37386.pdf
ssd_max_throttle and sd_max_throttle parameters
define the maximum number of concurrent I/Os that the driver can send to the storage.
ssd - driver for FC disk
sd - driver for generic SCSI disk
Regards. -
Resource Controls on Oracle Systems
The normal resource controls for the oracle user are pretty straight forward -- per the Oracle documentation even though it is hugely Solaris 10 deficient. (we are deploying on solaris 10 u8)
We are deploying a new data center with 2 and 3-node SFRAC clusters and we have an onsite Sun prof. services person that claims we also need to limit the user.root and default projects in the following manner (systems have 64gb memory):
projmod -sK "project.max-shm-memory=(priv,6GB,deny)" user.root
projmod -sK "project.max-sem-nsems=(priv,256,deny)" user.root
projmod -sK "project.max-sem-ids=(priv,100,deny)" user.root
projmod -sK "project.max-shm-ids=(priv,100,deny)" user.root
projmod -sK "project.max-shm-memory=(priv,6GB,deny)" default
projmod -sK "project.max-sem-nsems=(priv,256,deny)" default
projmod -sK "project.max-sem-ids=(priv,100,deny)" default
projmod -sK "project.max-shm-ids=(priv,100,deny)" default
Has anyone see this done anywhere? Even when I was working at oracle on some of the largest oracle databases in existence I never saw such settings being deployed on Solaris 10.
Can anyone point me to any hard documentation or similar resource?
Much thanks,
CC
Edited by: rhugga1 on Jan 21, 2010 7:10 AMYes the oracle documentation is wrong. I know how to set the oracle parameters.. As my OP states I was inquiring about limits set on the user.root and default projects
Since Solaris 10 update 4, these oracle kernel parameters ARE IGNORED COMPLETELY when set in /etc/system (not to mention some are deprecated) You can easily do an empirical test of this yourself since there is so much conflicting documentation out there, including some of Sun's docs.
Solaris 10 update 4 and later method:
projadd -c "Oracle" 'user.oracle'
projmod -s -K "process.max-file-descriptor=(priv,1024,deny)" 'user.oracle'
projmod -s -K "project.max-shm-memory=(privileged,25769803770,deny)" 'user.oracle'
projmod -s -K "project.max-shm-ids=(privileged,1024,deny)" 'user.oracle'
projmod -s -K "project.max-sem-ids=(privileged,1024,deny)" 'user.oracle'
projmod -s -K "process.max-sem-nsems=(privileged,1024,deny)" 'user.oracle'
But back to the OT, I've been told there are root project tweaks that don't really make sense to me and I've yet to find any viable documentation supporting this guys claim.
-CC -
When utilizing Solaris 10 Resource Control, should one use "user.root", "user.oracle" or "oracle" for the project identifier? Does it really make a difference?
For example,
I. projadd -U oracle -K "project.max-shm-memory=(priv,2048MB,deny)" user.oracle
II. projadd -U oracle -K "project.max-shm-memory=(priv,2048MB,deny)" user.root
III. projadd -U oracle -K "project.max-shm-memory=(priv,2048MB,deny)" oracle
I realize the Oracle Install documentation indicates "user.root", but I've seen other indications of either "user.oracle" or "oracle".thanks buddy. I was in this same tricky situation. and ur post solved my prblem.
Is this a bug with solaris 10.
Later i discovered.. on Oracle documentation that.. there r sum parameters that needed to be taken care while pre-installation of Oracle binaries.
Here is the excerpts.
The Oracle installer recognizes kernel parameters set using this method, but it is now deprecated in favour of resource control projects, explained below.
As the root user, issue the following command.
projadd oracle
Append the following line to the "/etc/user_attr" file.
oracle::::project=oracle
If you've performed a default installation, it is likely that the only kernel parameter you need to alter is "max-shm-memory". To check the current value issue the following command.
# prctl -n project.max-shm-memory -i project oracle
project: 100: oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 254MB - deny
system 16.0EB max deny
To reset this value, make sure at least one session is logged in as the oracle user, then from the root user issue the following commands.
# prctl -n project.max-shm-memory -v 4gb -r -i project oracle
# projmod -s -K "project.max-shm-memory=(priv,4gb,deny)" oracle
The first dynamically resets the value, while the second makes changes to the "/etc/project" file so the value is persistent between reboots.
# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
oracle:100::::project.max-shm-memory=(priv,4294967296,deny)
The Oracle installer seems incapable of recognising kernel parameter set using resource control projects, but if you ignore the warnings the installation completes successfully.Even this method works.
Regards
Monu Koshy -
Resource control assignment failed for project
I've setup a new project (we run sap), and keep getting the following msg
pam_unix_cred: project.max-sem-ids resource control assignment failed for
project "PAB"
I know you can get this sort of msg if you have wrong syntax in your project, but it all looks well to me. Any ideas gratefully received. cheers Lou
/etc/project >
PAB:1000:SAP System PAB:orapab,pabadm::
process.max-sem-nsems=(priv,2048,deny);project.max-sem-ids=(priv,1024,deny);project.max-shm-i
ds=(priv,256,deny);project.max-shm-memory=(priv,18446744073709551615,deny)Hi
The original entries were created with projadd.
I've just done a projdel and another projadd (as below) and watching out for error msgs - will post again when I get the error msgs - cheers Lou
root@sappab # projadd -p 1000 -c "SAP System PAB" -U pabadm,orapab \
root@sappab > -K "project.max-sem-ids=(priv,1024,deny)" \
root@sappab > -K "process.max-sem-nsems=(priv,2048,deny)" \
root@sappab > -K "project.max-shm-ids=(priv,256,deny)" \
root@sappab > -K "project.max-shm-memory=(priv,18446744073709551615,deny)" \
root@sappab > PAB
root@sappab # more /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
PAB:1000:SAP System PAB:orapab,pabadm::process.max-sem-nsems=(priv,2048,deny);project.max-sem-ids=(priv,1024,deny);project.max-shm-i
ds=(priv,256,deny);project.max-shm-memory=(priv,18446744073709551615,deny) -
Solaris 10 zones - Resource Controls not persisting through reboot
Local zone was rebooted, but somehow the resource controls are not well configured and the oracle database did not start up.
The cat /etc/project shows this : The local zone has 10 gb. The oracle database was started manually with the startdb.sh, which conn /assysdba and issue a startup, adn also startups the listener.
cat /etc/project
system:0::::project.max-shm-memory=(privileged,8589934000,deny)
user.root:1::::project.max-shm-memory=(privileged,8589934000,deny)
noproject:2::::
default:3::::project.max-shm-memory=(privileged,6442450944,deny)
group.staff:10::::
user.oracle:100::oracle::project.max-shm-memory=(privileged,8589934000,deny)
group.dba:101::::project.max-sem-ids=(privileged,100,deny);project.max-shm-ids=(
privileged,100,deny);project.max-shm-memory=(privileged,6442450944,deny)Nikolay, thank you for your reply.
What I know is that the zone was rebooted saturday. sunady at 1:00 am the oracle database (I'am a Dba not sysadmin), perform coldbackup (veritas.) then Veritas call a unix script to starts the database.
I run the script to starts the database manually sunday. Veritas could not open the database because of the Out of Memory.
The box has 10 gb , the oracle user, the rot and system are configured to use 8 gb, the rest are configured to use less.
I'am oracle user.
id -p
uid=100(oracle) gid=100(dba) projid=100(user.oracle)
prctl -i process $$
process: 8928: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-port-events
privileged 65.5K - deny -
system 2.15G max deny -
process.max-msg-messages
privileged 8.19K - deny -
system 4.29G max deny -
process.max-msg-qbytes
privileged 64.0KB - deny -
system 16.0EB max deny -
process.max-sem-ops
privileged 512 - deny -
system 2.15G max deny -
process.max-sem-nsems
privileged 512 - deny -
system 32.8K max deny -
process.max-address-space
privileged 16.0EB max deny -
system 16.0EB max deny -
process.max-file-descriptor
basic 256 - deny 8928
privileged 65.5K - deny -
system 2.15G max deny -
process.max-core-size
privileged 8.00EB max deny -
system 8.00EB max deny -
process.max-stack-size
basic 8.00MB - deny 8928
privileged 8.00EB - deny -
system 8.00EB max deny -
process.max-data-size
privileged 16.0EB max deny -
system 16.0EB max deny -
process.max-file-size
privileged 8.00EB max deny,signal=XFSZ -
system 8.00EB max deny -
process.max-cpu-time
privileged 18.4Es inf signal=XCPU -
system 18.4Es inf none -
task.max-cpu-time
system 18.4Es inf none -
task.max-lwps
system 2.15G max deny -
project.max-contracts
privileged 10.0K - deny -
project.max-device-locked-memory
privileged 987MB - deny -
project.max-locked-memory
system 16.0EB max deny -
project.max-port-ids
privileged 8.19K - deny -
project.max-shm-memory
privileged 8.00GB - deny -
project.max-shm-ids
privileged 128 - deny -
project.max-msg-ids
privileged 128 - deny -
project.max-sem-ids
privileged 128 - deny -
project.max-crypto-memory
privileged 3.85GB - deny -
project.max-tasks
system 2.15G max deny -
project.max-lwps
system 2.15G max deny -
project.cpu-cap
system 4.29G inf deny -
project.cpu-shares
privileged 1 - none -
zone.max-swap
privileged 20.0GB - deny -
zone.max-locked-memory
system 16.0EB max deny -
zone.max-shm-memory
system 16.0EB max deny -
zone.max-shm-ids
system 16.8M max deny -
zone.max-sem-ids
system 16.8M max deny -
zone.max-msg-ids
system 16.8M max deny -
zone.max-lwps
system 2.15G max deny -
zone.cpu-cap
system 4.29G inf deny -
zone.cpu-shares
privileged 1 - none -
Print configured reso
urce control
ksh: Print: not found -
How do I set a limit for a per process data size in the /etc/system file?
Thank you.
coscopCoscop,
You can't. The only limit you could set via /etc/system is
file descriptor limits (rlim_fd_cur & rlim_fd_max). ie.:
set rlim_fd_max = 4096
The rest, including the process heap segment, needs
to be set via shell (like in the .profile). Later version of
Solaris has the plimit command which allows to set the limit
on the running PID. Solaris Resource Manager was developed
around the Solaris 8 release time frame, I don't believe
it has a way to limit the heap segment per prccess either.
Hope this helps.
hae -
Audio driver fails to initialize when hires_tick=1 in /etc/system
Running Solaris 9 on Ultra 25 hardware. A customer's application requires hires_tick=1 be set in /etc/system. Once this change is made, audio does not work. Here is the error message from /var/adm/messages
Nov 1 12:34:11 <hostname> audiosup: [ID 384451 kern.warning] WARNING: audio15750: failure to power up the AC97 Codec
Nov 1 12:34:11 <hostname> audiosup: [ID 472426 kern.warning] WARNING: audio15750: attach() failure to init chip
There is a bug report on this: http://sunsolve.sun.com/search/document.do?assetkey=1-1-6567521-1
However, there does not appear to be a patch or other workaround aside from not setting hires_tick=1. That is not an option in this case.
Any thoughts?
Thanks,
Adam McManusRunning Solaris 9 on Ultra 25 hardware. A customer's application requires hires_tick=1 be set in /etc/system. Once this change is made, audio does not work. Here is the error message from /var/adm/messages
Nov 1 12:34:11 <hostname> audiosup: [ID 384451 kern.warning] WARNING: audio15750: failure to power up the AC97 Codec
Nov 1 12:34:11 <hostname> audiosup: [ID 472426 kern.warning] WARNING: audio15750: attach() failure to init chip
There is a bug report on this: http://sunsolve.sun.com/search/document.do?assetkey=1-1-6567521-1
However, there does not appear to be a patch or other workaround aside from not setting hires_tick=1. That is not an option in this case.
Any thoughts?
Thanks,
Adam McManus -
Problem with /etc/system file
I changed /etc/system file and reboot Sun Solaris Intel (5.8)
and I got :
* IPC Semaphores module is not loaded
I did same thing on another box before and was fine. I now that I run some utility before rebooting, but I forget which one.
Can somebody help me.Thank you very much.
That solve my problem. The problem, if I undersend well, was not in my new /etc/system file, problem was (it is not problem) because I run sysdef right after booting machine and that modul probably is not loaded yet. With forceload sysdef shows what I expected. About
some utility, probably that was something else.
Regards,
Ivan Aksentijevic -
Hi All,
we have a server of 8GB RAM , what can be maximum value I can assign for shmmax in /etc/system ..can i assign complete 8GB of RAM.
And what can be maximum sga_target that I can assign to a database in solaris..
In linux I know that to have a SGA of more than 2 Gb we assign hugepage memory.. In solaris what is the max limit for the SGA...
Please give me reply ASAP
Thanks in Advance...you can set shmsys:shminfo_shmmax=8589934591
It has no effect other than allocating contiguous memory for a process. In your case since you are going to have 4 Dbs and you have 8 GB of physical memory, may be you can have SGA of each DB as 1.5 GB, but as Hans suggested earlier you should look at tuning manual to estimate, how much PGA your processes will take. Also you should take into account what will be going on in these 4 DBs i.e. how much activities will be there in these and allocate SGA accordingly. Allocating SGA of 1.5 GB to each without consideration to activities may not be good thing to do.
Maybe you are looking for
-
I am organizing a slideshow with iMovie importing photos form iPhoto. When I try to decide about Ken Burns effect: 1. are the frames fixed in height to width ratio to the choice of the screen or can it be set to a free format by some option? 2. Is re
-
Getting user name, date and time into 1 field
Hi All, I have to add a new field in a customising include of AUFK table. This field should have user name, date and time. How do I store all these values in a single field of the table? Please help.
-
Delay not processing in new db
Hi, Running 10.204 We have several application queues (i.e. built by developers without involving the dba) that were working fine. We created a new database and imported the schemas containing the ques. Two of the three queues are working fine. But o
-
UCCX Real time Reporting - Engine Tasks not clearing
I've got a couple of VERY basic test scripts that I wrote for testing session management from one script to the next. I finally got the scripts to work, but I've been getting this error message when the first script completes (after the call is tran
-
Hello there. These past two days my iChat has not been working. About a year ago I installed a program called iChat Pro that modified my iChat to look different. It worked fine and such but two days ago I decided to reinstall iChat from the Snow Leop