Page 1 of 1

add_to_heap() - Unable to allocate memory

Posted: Tue Jan 24, 2006 12:25 pm
by eoyylo
Hi,
to improve the performance i try to load in memory an hash file but its dimention is about 2GB.
To load in memory the file I set 999MB in "Read cache size" and 999MB in "Write cache size" in the tunable page of Administrator, and I split the hash file in 3 hash file (I suppose to obtain 3 file of 700 MB).
The server is an HP with HP-UX 11, 8 GB of Ram and 200 GB allocated for the temporary file .
I modified the value of some kernel parameter (maxdsiz to 4GB and maxdsiz_64bit to 6 GB).

I used the command shmtest (the result is below) but i don't understand which are the uvconfig parameter that i must modify to obtain to load the hash file in memory

I try to read the previous post, but I can't find the solution.

Can someone help me?
Which are the kernel parameter that i must modify?
And Which are the uvconfig parameter that i must modify?

Thanks in advance

Regards
Mario

output of shmtest command:


Step 1: Performing an init() operation
: Operation successful
Step 2: Getting uvhome directory
: uvhome = /app/Ascential/DataStage/DSEngine/.uvconfig
Step 3: Reading in Tunables
: Operation successful
Step 4: Determining segment sizes
: Dsegsize = 13678272
: Psegsize = 10240
: Csegsize = 10485760
: Nsegsize = 0 ***(NLS inactive)
Step 5: Creating segments
: Dshmid = 1212
: Pshmid = 2613
: Cshmid = 414
Step 6: Determining memory locations
: ***using Cshmseg
: base memval = 0x4003f000
: old memval = 0x7b02fc00
: top memval = 0x7b02fc00
: tot. memory = -989793280 bytes
Step 7: Calculating segment attach points based on size
: Nmemoff = 0x0
: Cmemoff = 0x7b02e000
: Pmemoff = 0x7b02a000
: Dmemoff = 0x7a31d000
Step 8: Performing a fin()
: Operation successful
Step 9: Attaching to segments
: Dshmptr = unsuccessful
Step 10: Cleaning up
: segment detach successful
: segment removal successful

Posted: Tue Jan 24, 2006 12:53 pm
by eoyylo
Hi,
an another little bit of information:
i set the uvconfig parameter at the value specified by smhtest: now i can't restart the DataStage server.

DMEMOFF 0x7a31d000
PMEMOFF 0x7b02a000
CMEMOFF 0x7b02e000


regards

Mario

Posted: Tue Jan 24, 2006 5:00 pm
by ray.wurlod
What error messages do you get when trying to restart DataStage?

These "memory offset" parameters are quite sensitive; you are not permitted to generate any shared memory segment larger than the system can deliver; this in turn is configured by UNIX kernel parameters such as shmmax and shmmni.

Nothing exists in isolation!

Posted: Wed Jan 25, 2006 5:38 am
by eoyylo
Hi Ray,
after i modified the uvconfig parameter the error during the start of datastage server is:

Unable to attach disk shared memory segment: Invalid argument
An error has occurred during uniVerse initialization
Please contact the system administrator
Error code: 4 22
An error has occurred during uniVerse initialization
Please contact the system administrator
Error code: 4 22
An error has occurred during uniVerse initialization
Please contact the system administrator
Error code: 4 22
DataStage Engine has been brought up.


If I use the command shmtest i obtain

Step 1: Performing an init() operation
An error has occurred during uniVerse initialization
Please contact the system administrator
Error code: 4 22


I modified the kernel parameter in the next values:

shmem 1 - 1
shmmax 4294967296 Y 4294967296
shmmni 512 - 512
shmseg 512 Y 512

Any suggestions?

Regards

Mario

Posted: Wed Jan 25, 2006 7:19 am
by chulett
Here's a thought... why not set the uvconfig values that you changed back to whatever they used to be when the server would actually start?

Error code: 4 22

Posted: Wed Jan 25, 2006 4:17 pm
by ray.wurlod
The Administering UniVerse manual (page E-8) tells you that the 4 means that System V semaphores are probably not configured in the kernel, and (page E-4) that 22 means that an invalid argument has been passed.

So I'd look at your UNIX kernel parameters to make sure that they are set at least as large as your installation documentation specifies. They may need to be slightly larger (particularly shmmax and shmmni and, consequently shmmni and shmseg) because you have increased the total demand for shared memory.