[Lugstuff] shared memory kernel

Theodore Knab tjk at annapolislinux.org
Thu Sep 16 18:01:32 EDT 2010


Thanks Nick,

Actually, Oracle recommends the kernel.shmmax be set to half the usable 
RAM in bytes. This is completely different than what the Informix
documentation people put out and make more sense.


On 16/09/10 12:16 -0700, Nicholas S. Rosasco wrote:
> Not sure...
> you might try hunting around the Oracle forums, as ORA's DB requires these
> to be seriously cranked prior to install.
> 
> Shrug, curious to know m'self,
> Nick
> 
> 
> On Thu, September 16, 2010 5:43 am, Theodore Knab wrote:
> > Hi I was wondering if anyone knows how to tune the three shared memory
> > parameters found in the /etc/sysctl.conf.  For those of you not familiar
> > with sysctl, it holds tunable kernel configurations.
> >
> > http://en.wikipedia.org/wiki/Sysctl
> >
> >
> > Normally, you have to increase the default settings for shared
> > memory use when messing with database applications and other applications
> > that lock a lot of memory.
> >
> > The three I am focusing on are:
> > kernel.shmax kernel.shmall kernel.shmni
> >
> > More specifically, I am wondering what happens if the tuning numbers for
> > shmax are set too high ? Does the kernel think it has more RAM that it does
> > ? The reverse seems to be true. For example, if the shared memory
> > number is too low applications requiring more shared memory will crash or
> > just not start.
> >
> > For example, my home system runs Zone Minder for keeping track of
> > camera data. The default settings for shmax of 32Mb had to be increased for
> > this application to work.
> >
> > In contrast, I found a Informix machine that was tuned with a
> > shmmax that I thing was outrageously high.
> >
> > For example, I found a system with 24GB had this parameter:
> > kernel.shmmax = 4398046511104
> >
> > According to the Google calculation this number translates to:
> > 4 398 046 511 104 bytes = 4096 gigabytes
> >
> >
> > This is the default setting that IBM Informix has on their website for
> > their Database application. So, I can understand how this may have been
> > set. However, it seems not many people would have 4096GB or more on their
> > machine.
> >
> > http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/co
> > m.ibm.relnotes.doc/ids_1150xc5/mach/ids_machine_notes_11.50.linppc64.html
> >
> >
> > I have since reset the setting to 75% of the total RAM in bytes, but I am
> > still wondering what happens to a Linux system. The machine in question
> > locked up twice due to all the memory being used. This is not something
> > that created a log entry. Also, the machine seemed to become unstable when
> > it started swapping. It was just as if all the applications on the machine
> > were trying to consuming more RAM that the system had.  For example,
> > recently while running a database upgrade script on the machine, I could
> > not run simple shell commands. When I tried to log in, I could type a few
> > characters but only after a few minutes of waiting. I tried to type
> > 'ctrl-alt-del' but it appeared the program the shutdown
> > program could not be run in the time I had available to wait. It was not a
> > hard crash where errors appear.
> >
> > Could this be a possible symptom of the kernel.shmmax being too high ?
> >
> >
> > Here are the current setting I am using for the 24GB machine.
> > kernel.shmmax = 18956485632 kernel.shmall = 4194304 kernel.shmmni = 4096
> >
> > I used this script to calculate the max shared memory:
> > #!/bin/sh
> > #limits the kernel's shared memory to 1/2 actually physical memory
> > mem_bytes=`awk '/MemTotal:/ { printf "%0.f",$2 * 1024}' /proc/meminfo`
> > mem_max=`expr $mem_bytes / 2` #devide by 2 mem_max=`expr $mem_bytes / 4`
> > #devide by 3
> >
> >
> > echo "mem max is $mem_max"
> >
> > mem_max=`expr $mem_max + $mem_max + $mem_max` #gets a 75%
> > page_size=`getconf PAGE_SIZE` shmall=`expr $mem_bytes / $page_size` echo \#
> > Maximum shared segment size in bytes
> > echo kernel.shmmax = $mem_max echo \# Maximum number of shared memory
> > segments in pages echo kernel.shmall = $shmall
> >
> >
> > --
> > Ted Knab
> >
> >
> > _______________________________________________
> > Lugstuff mailing list
> > Lugstuff at annapolislinux.org
> > http://list.annapolislinux.org/cgi-bin/mailman/listinfo/lugstuff
> >
> >
> >
> 

-- 
Ted Knab
Stevensville, MD USA




More information about the Lugstuff mailing list