10-20-2010 05:57 AM
I want to restrict memory usage of "oracle" user
to consume memory up to 10 GB. If oracle user request memory more than 10GB then he will fail.
For this reason i use ulimit in the $HOME/.profile of oracle
ulimit -m 10485760
Is the above setting is right ?? Please advise.
10-20-2010 06:03 AM
1 GB (maxdsiz) & 2 GB (maxdsiz_64). My query is not for a single process memory consumption. Actually i want to restrict globally oracle user to consume memory not more than 10 GB.
10-20-2010 06:07 AM
ulimit is the way to go. However you are making limits on a single process, not an aggregate consumption for the user.
The kernel parameters mentioned above can help, but again apply to a single process, not an aggregate total for a user.
PRM, an add in product can let you control resources a user users overall.
Owner of ISN Corporation
10-20-2010 11:10 PM
We have used HP-UX 11.23 EOE. PRM is already installed. Can you give me steps on how can i assigned 50% memory to user "oracle" . At present my system has 16 GB memory.
10-22-2010 06:55 AM
10-22-2010 07:16 AM
Setting up PRM requires a bit of planning. A good whitepaper on PRM and memory : http://h20338.www2.hp.com/hpux11i/downloads/5983-1
PRM documentation is available under HPUX core documentation:
http://www.hp.com/go/hpux-core-docs -> Select 11iv2, PRM documentation is under "User Guides".
10-23-2010 01:52 PM
Also, ulimit is per-process, so there may be 10 processes that each use 1GB. But the total of all the processes is 10GB. There is no parameter to limit all the processes for a particular user. That's where PRM will be of use. But remember that memory usage by oracle is largely controlled by the data base administrator. And when Oracle processes hit a memory limit, the database programs will stop or crash. Rather than cripple the programs, it would make more sense to configure the Oracle parameters to reduce memory usage. Also note that in general, reducing memory for database programs means slower performance.
10-24-2010 05:29 AM
Be sure to carefully review Bill's and SEP's replies. Even if it is not entirely clear, heed their advice don't hide it.
What version of Oracle?
>> Can you give me steps on how can i assigned 50% memory to user "oracle" . At present my system has 16 GB memory.
Why? My guess is that you are following up a general suggestion to give 1/2 memory to Oracle. That's fine if Oracle is the dominant application on the system. But if it is the only application on the system, then why not give it 100% outside the kernel memory and some buffer cache?
You are trying to approach this problem from the outside in (the OS), trying to draw a limit line. But how can the OS tell Oracle to use MORE if the 50% is not reached?
Try looking at the problem from the inside out to solve both dilemmas.
The oracle user is typically used to create a number of database instances ( just 1 for dedicated production boxes). Each instances has a bunch of processes that take some memory to run, but mostly the work memory is defined by SHARED (SGA) and PRIVATE (PGA) memory setting and the DBA can and should request based on negotiation with the SA (you?) as to how much is available in total (that 50%, or 90% !?)
Google for PGA_TARGET and SGA_TARGET, and read some of those and you'll get the drift.
For example, but not only: http://www.orafaq.com/wiki/Sga_target
I am convinced that armed with that new found knowledge you will be able nor only to control 'oracle' to use less than 10GB, but also to allow/make it use more than 8GB as you + DB find appropriate.
And it will be 'soft' control not a hard stop (ORA-600).
HvdH Performance Consulting