SLES 11 SHMMAX up to 4GB

Hi there,

for an Oracle installation we need to set the SHMMAX parameter up to 32GB.

SLES default parameter is 4GB
#> ipcs -l
max seg size (kbytes) = 4194303

When I try to set /etc/sysctl.conf parameter to 32GB ipcs shows 0.

#>cat /etc/sysctl.conf | grep shmmax
kernel.shmmax = 34359738368

After a reboot ipcs shows
#>ipcs -l
max seg size (kbytes) = 0

But sysctl -p shows the right value
#>sysctl -p
kernel.shmmax = 34359738368

Do we have a problem here ? Why shows ipcs a zero value ?

Thanks a lot !
*T

[QUOTE=tbrinkmann;30442]Hi there,

for an Oracle installation we need to set the SHMMAX parameter up to 32GB.

SLES default parameter is 4GB
#> ipcs -l
max seg size (kbytes) = 4194303

When I try to set /etc/sysctl.conf parameter to 32GB ipcs shows 0.

#>cat /etc/sysctl.conf | grep shmmax
kernel.shmmax = 34359738368

After a reboot ipcs shows
#>ipcs -l
max seg size (kbytes) = 0

But sysctl -p shows the right value
#>sysctl -p
kernel.shmmax = 34359738368

Do we have a problem here ? Why shows ipcs a zero value ?

Thanks a lot !
*T[/QUOTE]

See the bottom of this page, I believe it answers your question: https://www.novell.com/support/kb/doc.php?id=3664772

Thomas

Hello Thomas,

thank you for your replay. Ok maybe the parameter will be set automatically but how I can prove this and why there is no SLES 11 and SLES 12 in the Environment list at
the top of the document ? With the change from 32 to 64 bit the calculation change because the max GB size >4GB memory per process. In 32 bit environment ~4 GB is the SHMMAX max.
But in 64 bit there is a very much higher. Oracle specialists recommend 4TB.

Thank you ! Please help

[QUOTE=tbrinkmann;30444]Hello Thomas,

thank you for your replay. Ok maybe the parameter will be set automatically but how I can prove this and why there is no SLES 11 and SLES 12 in the Environment list at
the top of the document ? With the change from 32 to 64 bit the calculation change because the max GB size >4GB memory per process. In 32 bit environment ~4 GB is the SHMMAX max.
But in 64 bit there is a very much higher. Oracle specialists recommend 4TB.

Thank you ! Please help[/QUOTE]

Do you have orarun package installed, maybe that one is interfering, take a look inside /etc/sysconfig/oracle

Thomas

Hi T*,

I’ve tried to reproduce on a local system, but it works for me:

root@server:/tmp # ipcs -l |grep "max seg size" max seg size (kbytes) = 18014398509481983 root@server:/tmp # sysctl -p |grep shmmax kernel.shmmax = 18446744073709551615 root@server:/tmp # uname -a Linux server 3.0.101-0.31-default #1 SMP Wed Jun 4 08:59:53 UTC 2014 (87c5279) x86_64 x86_64 x86_64 GNU/Linux root@server:/tmp # cat /etc/SuSE-release SUSE Linux Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 3 root@server:/tmp #

Regards,
Jens

@Thomas
On this system we do not have orarun because to reproduce the problem I installed a fresh system.

@Jens
Thanks you to reproduce. Is there also something to configure or just setting.
echo ‘kernel.shmmax = 18446744073709551615’ >> /etc/sysctl.conf

After a reboot still nothing changed. Could be the kernel a problem ?
–>max seg size (kbytes) = 4194303

Linux pcb01389-vm28 3.0.101-0.47.67-pae #1 SMP Wed Aug 19 14:12:37 UTC 2015 (265cc32) i686 i686 i386 GNU/Linux

Greetings Till

The default SHMMAX for both SLES 11 and SLES 12 (x86_64 anyway) is
kernel.shmmax = 18446744073709551615 which I have confirmed now on two
out-of-the-box systems.

When I run ‘ipcs -l’ on my SLES 11 system it gives me this, among other
things:

max seg size (kbytes) = 18014398509481983
max total shared memory (kbytes) = 4611686018427386880

and SLES 12 returns the following:

max seg size (kbytes) = 18014398509481983
max total shared memory (kbytes) = 18014398509480960

The SHMMAX has always been this way, I think, as I have had to help
clients who wanted to change it (increase it) realize there was nothing to
change, specifically for Oracle reasons; it seems like other distributions
may have this value set to something else by default, but SLES has been
this way as long as I can remember (even in SLES 10 I believe, though I do
not have a system handy to check for verification).


Good luck.

If you find this post helpful and are logged into the web interface,
show your appreciation and click on the star below…

Thanks AB

Do you know why the parameters will be set by orarun.rpm ? Maybe SuSE will change the package.

vi /etc/sysconfig/oracle -->SHMALL —>SHMMNI ----> SHMMAX

I will disable the parameters from the script and from the sysctl and try a reboot.

So sorry things are going a little bit messy in my environment.

At last can you tell me witch process set the default parameters on startup ?

*T

.-(

we delete all entries from /etc/sysctl.conf and disable them in the oracle init script /etc/sysconfig/oracle but after a reboot
we still dont get the right parameters

ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 3217741
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 256
max semaphores per array = 1250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767

------ Messages Limits --------
max queues system wide = 1915
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536

can anyone help ?
Thanks

Ok, we find the last parameter. It will also set by oracle init.d script

/etc/sysctl.conf
/etc/init.d/oracle
/etc/sysconfig/oracle

*T