Change SHMMAX without rebooting

Shmmax parameter is supposed to be the maximum size of a single shared memory segments (and the oracle sga is build out of these shared memory segments).

New to the Solaris 8 release is the modular debugger, mdb(1), which is unique among
available Solaris debuggers because it is easily extensible. Mdb(1) also includes a number of desirable usability features including command-line editing, command history, built-in output pager, syntax checking, and command pipelining. This is the recommended post-mortem debugger for the kernel.

To change the value of the integer variable shmmax from 8GB to 10 GB without Reboot Server, do the following

bash> cp /etc/system /etc/system_old
bash> grep shminfo_shmmax /etc/system
set shmsys:shminfo_shmmax=8589934592
bash> mdb -k
Loading modules: [ unix krtld genunix ip usba s1394 ipc nfs ptm logindmux random ]
> shminfo_shmmax /D
shminfo_shmmax:
shminfo_shmmax: 1
> shminfo_shmmax /E
shminfo_shmmax:
shminfo_shmmax: 8589934592
> $q

At we can see the "shminfo_shmmax" use a 64 bit value, let's start to change the value

bash> mdb -kw
Loading modules: [ unix krtld genunix ip usba s1394 ipc nfs ptm logindmux random ]
> shminfo_shmmax /Z 0t10737418240
shminfo_shmmax: 0x5f5e10000             =       0x19000
> shminfo_shmmax /E
shminfo_shmmax:
shminfo_shmmax: 10737418240
> $q

After successfully, change the parameter "shminfo_shmmax" at /etc/system with same value on mdb

bash> vi /etc/system
set shmsys:shminfo_shmmax=10737418240
Printed from: http://sysinfo.bascomp.org/2008/02/change-shmmax-without-rebooting/ .
© 2010.

2 Comments   »

  • David Esquivel says:

    I tried this and didn't work for me. i can see the value is changed within mdb but when you run 'sysdef |grep -i shmmax' you get the original value.

    To check this, i lowered it to 1 tenth of the original value and oracle started with no problem at all, the total sga was like 2G, while the shmmax value was set to 256M in mdb.

    i think i'm gonna need to reboot the server. DAMN!

    thanx anyway.

  • Nilesh Joshi says:

    I tried with above procedure and I too failed to get success here. after performing change throgh mdb when I do sysdef |grep -i shmmax it shows me the original value rather it should show me the modified value. anybody who has got success on this procedure? Please get in touch with me on my email ID - nileshjosh@gmail.com with answer.

    Thanks!
    ~Nilesh

RSS feed for comments on this post

Leave a Reply

  • Search