SUMMARY: shmsys:shminfo_shmmax parameter

From: Stacy Lindberg (
Date: Fri Sep 01 2000 - 13:54:09 CDT

Thanks to everyone who replied. (listed at the bottom)

Original Question:

> Quick question. Can I change the shmsys:shminfo_shmmax kernel
> parameter on a live system? I want to be able to make the change now
> and don't want to wait for a time to reboot the server.


The consensus is that it is possible using adb to change the above
parameter. However, you must be very careful when you do so. Even then
the change might not be taken cleanly, probably depending on the state and
use of the machine in question.

My take on the replies leads me to believe that you would want to try this
procedure only if absolutely necessary and have the machine in as idle a
state as possible. i.e. having databases running during the change is
probably a no no.

We were fortunate enough to find a time to reboot the server last night so
I didn't end up having to try out the live solution.

Hopefully this information will be useful to others in the future.

The most informative replies/instructions are included below.

Thanks for your assistance!

On Fri, 1 Sep 2000, Kevin Buterbaugh wrote:
> Stacy,
> Yes, you can, but you have to be very careful. As root, do the
> following:
> adb -kw /dev/ksyms /dev/mem (you're "debugging" the live kernel)
> shminfo_shmmax/D (to see what the parameter is
> currently set to)
> shminfo_shmmax/W 0t99999999 (the new value you'd like in bytes; the
> "0t" (that's a zero) says you're specifying the value in decimal, not hex)
> <control>D (to exit adb)
> Since you're adb'ing the live running kernel, you obviously need to be
> careful. Don't forget to also add the appropriate line to /etc/system so
> that when you do reboot you continue to get the value you want:
> set shmsys:shminfo_shmmax=999999999
> As an aside, if you're setting this on a database server, leave
> anywhere from 100 - 250 MB of memory for Solaris itself (i.e. on a system
> with 512 MB RAM, don't set this parameter to much more than 400 MB). Hope
> this helps...
> Kevin Buterbaugh
> LifeWay
> "Anyone can build a fast CPU. The trick is to build a fast system." -
> Seymour Cray

On Fri, 1 Sep 2000, Casper Dik wrote:
> I believe so; not all shared memory variables can be dynamically
> altered , though.
> The "shminfo" structure in the kernel holds these sizes; it's the first
> field. It's a "size_t", so it's either a 32 bit or 64 bit value.
> With adb you can overwrite this first field of the shminfo structure:
> 32 bit kernel:
> # adb -wk
> shminfo/W800000
> (in hex 8MB)
> or:
> # adb -wk
> shminfo/W0t8388608
> (same in decimal)
> 64 bit kernel:
> #adb -wk
> shminfo/Z800000
> etc.
> Casper

On Fri, 1 Sep 2000, Stout, Logan wrote:
> sorry, cannot be done. we just had a major issue with this as well, a reboot
> will be required to make it reaccept this parameter cleanly.
> This info curtesy of Sun, and Oracle
> Logan

On Fri, 1 Sep 2000, Jim Taylor wrote:
> Yes, this can be done with adb. I don't remember
> the exact procedure off the top, but I know I've
> changed kernel parms on the fly before using adb.
> However, I'd really have to have a pressing need
> to change a shared memory parm on the fly. I'm
> assuming you do or you wouldn't be asking. Be
> careful.
> Regards,
> Jim Taylor

List of all that Replied:
David Foster <>
"Chang, Sam" <>
Bill Hussain <>
Alan Orndorff <>
Casper Dik <>
Kevin Buterbaugh <>
"Ahmed, Nabeel" <>
"Stout, Logan" <>
Charles M. Gagnon <>
Jim Taylor <>

U BEFORE POSTING please READ the FAQ located at
. and the list POLICY statement located at
A To submit questions/summaries to this list send your email message to:
A To unsubscribe from this list please send an email message to:
E and in the BODY type:
R unsubscribe sun-managers
S Or
. unsubscribe sun-managers original@subscription.address
L To view an archive of this list please visit:

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:14:16 CDT