I have a linux with ASE 12_5. On the machine, there 17G memory, 2G for ramdisk. Sybase max memory configued as 4000000(2K)=7.63G.
If reserve 1G for OS, then I think there are 17-2-1 = 14G available and I want to ASE can utilize this 14G memory.
What I did is:
1. Increase max shared memory(shmmax):
modify /etc/sysctl.conf to set shmmax = 14738890752 (this is roughly 13.72G)
run command:
echo "kernel.shmmax=14738890752" >> /etc/sysctl.conf
2. Reboot Linux with command reboot
3. Modify myserver.cfg to chang max memory for sybase:
max memory = 7196724
the start sybase ase, and I got error(see my ticket http://scn.sap.com/thread/3530977), but I can't start sybase. I try to increase max memory to different number for example 5000000, and not success. Only original 4000000 working.
Not sure why. I populate all info as below. How to resolve this problem?
[sybase@myserver ASE-12_5]$ free -g
total used free shared buffers cached
Mem: 17 7 9 0 0 7
-/+ buffers/cache: 0 17
Swap: 3 0 3
[sybase@myserver ASE-12_5]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 12G 2.6G 8.8G 23% /
/dev/sda1 251M 19M 220M 8% /boot
none 8.7G 0 8.7G 0% /dev/shm
/dev/sdb1 30G 8.4G 20G 30% /home
tmpfs 2.1G 20M 2.1G 1% /db/oe/tempdb
[sybase@myserver ASE-12_5]$ cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 1
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# kernel.shmmax = 10737418240
kernel.shmmax= 14738890752
kernel.shmmni = 4096
kernel.shmall = 2097152
[sybase@myserver ASE-12_5]$ cat /proc/sys/kernel/shmmax
14738890752
Sybase: max memory = 4000000
here is the output of sp_configure memory:
additional network memory 0 0 0 0 bytes dynamic
allocate max shared memory 0 0 1 1 switch dynamic
compression memory size 0 152 0 0 memory pages(2k) dynamic
engine memory log size 0 2 0 0 memory pages(2k) dynamic
heap memory per user 4096 0 4096 4096 bytes dynamic
lock shared memory 0 0 0 0 switch static
max memory 45056 8000000 4000000 4000000 memory pages(2k) dynamic
memory alignment boundary 2048 0 2048 2048 bytes static
memory per worker process 1024 66 4096 4096 bytes dynamic
messaging memory 400 0 400 400 memory pages(2k) dynamic
shared memory starting address 0 0 0 0 not applicable static
total logical memory 32768 7620028 3810014 3810074 memory pages(2k) read-only
total physical memory 0 8000000 0 4000000 memory pages(2k) read-only