More on shmmax. An update.
I created the script, boot_shmmax, with echo statement:
boot_shmmax:
#! /bin/sh
# File to set shmmax during boot.
echo "Setting size for /proc/sys/kernel/shmmax"
echo ` expr 2048 \* 1024 \* 1024 ` > /proc/sys/kernel/shmmax
echo "Value for shmmax is now: `cat /proc/sys/kernel/shmmax` "
echo ` date ` >> /etc/init.d/bootlog.txt
echo "start: /etc/rc.d/boot_shmmax" >> /etc/init.d/bootlog.txt
echo "runlevel is: ` runlevel `" >> /etc/init.d/bootlog.txt
echo "Value for shmmax is now: `cat /proc/sys/kernel/shmmax` " >>
/etc/init.d/bootlog.txt
echo "end: /etc/rc.d/boot_shmmax" >> /etc/init.d/bootlog.txt
echo " " >> /etc/init.d/bootlog.txt
And the links:
ln -s /etc/init.d/boot_shmmax /etc/init.d/rc4.d/S01boot_shmmax
ln -s /etc/init.d/boot_shmmax /etc/init.d/rc5.d/S01boot_shmmax
Also:
Edit /etc/sysctl.conf
add/change: kernel.shmmax=2147483648
sysctl -p
kernel.shmmax = 2147483648
cat /proc/sys/kernel/shmmax
2147483648
Edit the file, /etc/init.d/boot.local and add:
sysctl -p
-----------
But, when I boot, the shmmax is not changed.
The bootlog.txt I created says:
Sat Nov 15 00:50:29 EST 2003
start: /etc/init.d/boot.local
runlevel is: unknown
Value for shmmax is now: 33554432
end: /etc/init.d/boot.local
Sat Nov 15 00:50:32 EST 2003
start: /etc/rc.d/rc.3/boot_shmmax
runlevel is: N 5
end: /etc/rc.d/rc.3/boot_shmmax
------------------
/var/log/boot.msg:
....
Creating /var/log/boot.msg
....
done<notice>killproc: kill(30,29)
Running /etc/init.d/boot.local
/etc/init.d/boot.local: line 22: /proc/sys/kernel/shmmax
: No such file or directory
Value for shmmax is now: 33554432
done<notice>killproc: kill(30,3)
.... clip
<notice>/etc/init.d/rc5.d/S01boot_shmmax start
Setting size for /proc/sys/kernel/shmmax
/etc/init.d/rc5.d/S01boot_shmmax: line 6: /proc/sys/kernel/shmmax
: No such file or directory
Value for shmmax is now: 33554432
<notice>'/etc/init.d/rc5.d/S01boot_shmmax start' exits with status 0
.... clip
-------------------
Very mysterious. At run level 3, the runlevel is unknown:
And at runlevel 5, the shmmax doesn't change.
And, the "file" doesn't exist, according to boot.msg
Does anyone have any more ideas on how to set the
shmmax at boot time?
Thanks
----------------------
linuxquestion@yahoo.com wrote in message news:<672ceaed.0311130005.5b8bddcf@posting.google. com>...
> HI all,
>
> I'm using: Linux Suse personal edition 8.2
>
> I am using the dbca with Oracle 9.2. It keeps
> running out of memory with the ora-27123 error.
>
> As the docs said, I did this:
>
> echo `expr 2048 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
>
> cat /proc/sys/kernel/shmmax
> 2147483648
>
> reboot
>
> ---------------
>
> But, then I got the same symptom.
> I checked the file.
>
> cat /proc/sys/kernel/shmmax
> 33554432
>
> So, it didn't keep the value!!!
>
>
> ipcs -l
>
> ------ Shared Memory Limits --------
> max number of segments = 4096
> max seg size (kbytes) = 32768
> max total shared memory (kbytes) = 8388608
> min seg size (bytes) = 1
>
> ------ Semaphore Limits --------
> max number of arrays = 1024
> max semaphores per array = 250
> max semaphores system wide = 256000
> max ops per semop call = 32
> semaphore max value = 32767
>
> ------ Messages: Limits --------
> max queues system wide = 128
> max size of message (bytes) = 8192
> default max size of queue (bytes) = 16384
>
>
> In Solaris, this was easy. Edit the file:
> /etc/system
> and reboot. The values stayed there forever.
>
> But how to do this in Suse, and make it stick?
>
> I don't want to put this in some script, so they
> get changed while booting, and add yet another
> layer of complexity.
>
> Thanks