Re: ONINIT ERROR - shared memory
Posted in 1996
In article <3298535E.46B4@netcomuk.co.uk>, Neil Truby
<ntruby@netcomuk.co.uk> writes
>Peter Strempel wrote:
>>
>> I get the following error when running oninit or onmonitor to initialise
>> our database for the first time:
>>
>> WARNING: semsys: can't load module, too much memory requested.
>>
>> We are running ONLINE DS ver 7.20.UC3 on Solaris 2.5.1. The hardware is
>> a SPARCSTATION-20 with 32MB of memory.
>>
>> I have the correct parameters(per Informix doco) set up in my /etc/system
>> file and have checked all others in my onconfig with Informix support.
>>
>> Any assistance would be greatly appreciated.
>>
>> Thanks,
>> Peter Strempel
>> chandos@sydney.dialix.oz.au
>
>Just a thought - you don't have your SHMTOTAL parameter set to something
>silly, do you?
>
>Neil Truby
>Chase Bank, Bournemouth, UK
>
>(But once of Channel 7 TV, Epping, and AGL, North Sydney!)
I would first do a swap -l to check you are not running out of memory.
If this shows you have free swap space i.e. available memory then
set SHMTOTAL to 0 and see the note below about kernel parameters.
I've never used 7.20 but check your release note again, In the release
notes for Online 5.07.UC1 on Solaris 2.5 it DOES NOT give SUGGESTED
kernel parameters for this release. IT GIVES THE PARMETERS USED WHEN
INFORMIX DID THE PORT. THESE ARE PROBABLY CLOSE TO THE MINIMUM NEEDED
TO RUN ONLINE i.e. LESS THAN 5 USERS. Try increasing the kernel
parameters related to shared memory and semaphores. E.g.
For semaphores :
semmni - Maximum number of semaphore "sets" that can be active.
semmns - MAximum number of semaphores.
semmnu - Maximum number of semaphore undo structures.
semmsl - Maximum number of semaphores per indentifier.
For shared memory :
shmmax - Maximum shared memory segment size.
shmmin - Minimum shared memory size.
shmmni - Maximum number of shared memory identifiers
shmseg - Maximum number of shared memory segments per process.
On Solaris 2.5 these are in the file /etc/system. I don't have a
system in front of me but I remmeber that the kernel parameter
entries have the form X:Y where X is the subsystem
(semaphores/shared memory) and Y is the actual parameter E.g.
shmmax. Also both the X part and Y part are in lower case (rather
unusual as kernel parameters on others version of unix usually appear
in uppercase).
I would try increasing the parameters (semphore ones to 400), shared
memory ones to allow 130Mb maximum shared memory segment, minimum
size of 1, allow 400 indentifers and 50 segments per process.
These may seem high but with 32Mb of memory I would assume you had at
least 32MB of swap configured and should be future-proof i..e not
need changing if you increase memory to 64Mb and 64Mb of swap.
These should allow Online to run. When it is up and users have been
using the system do an onstat -g seg and total the size of the
virtual shared memory segments. These will be ones with class 'V'.
Add the sizes of these and change the Informix parameter SHMVIRTSIZE
(size of initial shared memory segment) to this value divided by
1024. onstat -g seg gives you a total in bytes by SHMVIRTSIZE measure
in K.
--
David Williams