System Administration
cancel
Showing results for 
Search instead for 
Did you mean: 

Sybase can't create share memory

 
chuanpeng.wang
Frequent Advisor

Sybase can't create share memory

Server: RP3440
OS: 11.11
Memory: 12G
Problem:The sybase package can't startup

The error message in cluster package log:
00:00000:00000:2008/05/25 05:48:07.81 kernel Use license file /home/sybase/SYSAM-1_0/licenses/license.dat.
00:00000:00000:2008/05/25 05:48:07.82 kernel Checked out license ASE_SERVER
00:00000:00000:2008/05/25 05:48:07.82 kernel Adaptive Server Enterprise Edition
00:00000:00000:2008/05/25 05:48:07.82 kernel Using config area from primary master device.
00:00000:00000:2008/05/25 05:48:07.91 kernel os_create_region: can't allocate 3865468928 bytes
00:00000:00000:2008/05/25 05:48:07.91 kernel kbcreate: couldn't create kernel region.
00:00000:00000:2008/05/25 05:48:07.91 kernel kistartup: could not create shared memory
ttytype: couldn't open /dev/tty for reading

The kernel paramter:
shmem 1 - 1
shmmax 10000000000 Y 10000000000
shmmni 200 - 200
shmseg 120 Y 120

The swap:
Mb Mb Mb PCT START/ Mb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 18432 0 4096 0% 0 - 1 /dev/vg00/lvol2
reserve - 487 -487
total 18432 487 3609 3% - 0 -

There is no error message about memory in syslog .
I think the memory is enough.
And the package can start on the other node which has the same configuration.
7 REPLIES 7
Sajjad Sahir
Honored Contributor

Re: Sybase can't create share memory

please

swapinfo -tam output

ipcs -mob also

sajjad

TTr
Honored Contributor

Re: Sybase can't create share memory

Most probably you did not set the privilege group for sybase. Check if the /etc/privgroup file has the following line in it.

RTPRIO MLOCK CHOWN

Where is the UNIX group of the sybase account.
TTr
Honored Contributor

Re: Sybase can't create share memory

If you don't have the sybase group entry in /etc/privgroup, add it and then apply the change by running the command

/sbin/init.d/set_prvgrp start
Steven E. Protter
Exalted Contributor

Re: Sybase can't create share memory

Shalom,

Could be root owns the shared memory segments which makes them not shareable. See if sybase was started with a non-root user.

Also could be that all shared memory is actually in use.

ipics, see who owns them.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
chuanpeng.wang
Frequent Advisor

Re: Sybase can't create share memory


There is no file /etc/privgroup on both nodes.
But the sybase package can start on the other node.
TTr
Honored Contributor

Re: Sybase can't create share memory

You can compare the kernel parameters between the two servers and pay close attention to the shared memory and semaphore parameters and see if there is a difference somewhere.

Also you can compare the sybase cfg file between the two servers to see if this server sybase environment has larger settings than the other. That would mean the even if the kernel partameters are identical, the ones on this server may need more increasing.

Also check if there are any leftover memory segments eating up your memory by using the command

ipcs -a

and look for anything owned by sysbase. If sybase is down, there should be nothing owned by sybase. If there is you should remove it by "ipcrm ...".

Are there any other environments running that use a lot of memory?
Don Morris_1
Honored Contributor

Re: Sybase can't create share memory

That swap looks weird:

The swap:
Mb Mb Mb PCT START/ Mb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 18432 0 4096 0% 0 - 1 /dev/vg00/lvol2
reserve - 487 -487
total 18432 487 3609 3% - 0 -

First, no memory line -- so I assume you set swapmem_on to 0. More importantly, look at the device -- the device should be 18432Kb of swap -- but 0 is Used and only 4096Mb is free [4Gb].

That (strongly) implies that your swap tunables are too low to represent your swap (I think there may be cases when there's a disk error, bad clusters, etc. that can give this... but tunables are much more likely here). 4Gb assuming a 1Kb block size implies maxswapchunks * swchunk of 4194304. Being 11.11, swchunk defaults to 2048 -- so that would imply maxswapchunks of 2048 as well.

Doesn't matter hugely -- other than keeping swchunk low first is more important.

First thing to check is if the system log / dmesg output shows:

Unable to add all swap from . Increase the tunable parameter maxswapchunks by < X > and re-configure your system.

If so -- do what it says and raise maxswapchunks. Alternately, since you want 18432Mb... we can do the math real quick ourselves.. the product must be (18432 * 1024 [18874368]) so again assuming swchunk of 2048, set maxswapchunks to at least 9216 to use your full swap device.

Since SysV segments do require swap reservations -- I'll assume the os_create_region above was trying for that type of allocation... in which case it wanted 3686Mb with only 3609Mb of swap free, hence the failure.