1833052 Members
2669 Online
110049 Solutions
New Discussion

shmmax

 
Stephen Young_1
Occasional Advisor

shmmax

Hi,

We have a V-Class server running HP-UX 11.0 64bit with two oracle databases, both 32bit. Our customer has asked us to increase the size of shmmax from 1GB to 4GB. Would this improve performance at all and what are the implications ?

Thanks
6 REPLIES 6
Alexander M. Ermes
Honored Contributor

Re: shmmax

Hi there.
SHMMAX is thze maximum size of a shared memory segment. A process will claim this amount of memory times #of shared memory segments ( SHMSEG ). if you do not lower the shmseg param, your machine will take much more memory per process. That might increase speed, but it also can bring the machine to a point, where it starts to swap on devices instead of memory.
This will really slow down your performance.
So you should test first ( if you have the chance ).
Rgds
Alexander M. Ermes
.. and all these memories are going to vanish like tears in the rain! final words from Rutger Hauer in "Blade Runner"
harry d brown jr
Honored Contributor

Re: shmmax

It might. Do you have more than 4GB of memory, like at least 8GB? If not, you are going to get hammered. Make sure you have enough swap space!

live free or die
harry
Live Free or Die
Rita C Workman
Honored Contributor

Re: shmmax

Would it improve performance....I tend to look at that from 2 angles. First, if you have the resouces to increase this .. then yes you should see an improvement. Second...and this is the one programmers/developers hate to hear - The best performance improvement is clean solid code. And when I know I have tuned a box and the app is running slow...I look bigtime to code.

Here is a thread that mentions about increasing this parm. I thought it might be handy since you may run into the issue they did when trying to increase it:

http://forums.itrc.hp.com/cm/QuestionAnswer/1,,0x346450011d20d6118ff40090279cd0f9,00.html

Rgrds,
Rita

Steven Gillard_2
Honored Contributor

Re: shmmax

A 32bit application can only address 1Gig of shared memory, so there is no benefit in raising shmmax in your case.

You can investigate using memory windows, which will allow each Oracle instance to have its own shared memory 'window' so that they do not share the address space and can both have SGA's of up to 1Gig. There is a document at /usr/share/doc/mem_wndws.txt on your system that describes their use.

Your best bet is to install the 64bit version of Oracle if you really need SGA's this large.

Regards,
Steve
Krishna Prasad
Trusted Contributor

Re: shmmax

You will always have a problem getting more than 1.75 mb of shared memory when you run 32 bit apps. There is something called memory magic that can give you a little more. However, I would try upgrading Oracle to 64bit.
Positive Results requires Positive Thinking
Bill Hassell
Honored Contributor

Re: shmmax

As mentioned, 32bit versions of Oracle are crippled when it comes to shared memory. Out of the box, the 32bit Oracle programs can request about one Gb or RAM max, BUT there is only one shared memory map for 32bit programs so they must share that same 1Gb space! So the two programs are stuck with no more than 500 megs each.

So no matter how much real RAM you have, telling Oracle to use more will fail to allocate. Also note that all 32bit programs may use that same shared memory map for things like shared memory, memory mapped file pointers, and other IPC communitcation. To see how good (or bad) the map is, get a copy of shminfo from:

ftp://contrib:9unsupp8@hprc.external.hp.com/sysadmin/programs/shminfo/

Once you see all the fragmentation, you'll want to look at memory windows or 64bit as soon as possible.

Now the Oracle executables can be relinked (if necessary) to use what is called SHMEM_MAGIC which will allow access to as much as 1.7 Gb for shared memory, but subject to the same constraints that this area is used by other programs.

Memory windows on the other hand, can give each executable access to as much as 1.7Gb of shared memory without having any other program use it. Note that all apps that look at this area (memory window) must be started in the same memory window. There are patches necessary to implement memory windows on 11.0.


Bill Hassell, sysadmin