Translating with DrWatson… this can take a few seconds the first time.
This is a genuine, complex translation. DrWatson protects commands, error codes, and log output while naturally translating the surrounding text. It’s translated once and saved.
Shaun Wallace could not get IDS 9.40.UC4 on 32-bit SuSE 8 to use more than about 1.7 GB of shared memory. He worked out SHMBASE 0x50000000 leaves about 1.72 GB of the 3 GB user space, and set SHMTOTAL to 1800000. He planned to change the base address and asked whether bigpages or separate instances could help. No answer to those questions in the thread.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Hi All,
Suse 8
Informix IDS 9.4 UC4
6 Gigs memory
I've been trying to increase the amount of memory Informix can use by
changing the relevant settings in ONCONFIG files and changing the
SHMMAX value in the operating system to 4294967295 but I seem unable to
get informix to use more than 2 gigs of memory. Currently it can use up
to just over 1.7 gigs of memory before it'll get allocation errors [I
presume I get this limit becuse of my SHMBASE being set to 0x50000000L
-> This means it starts at the 500Mb postion?].
I know that since this is 32bit I am limited to 4 gigs memory and I
assumed that 3 gigs is for user space and 1 gig for kernel. So I should
be able to use 3 gigs less 500Mbs for the base postion -> leaving 2.5
gigs available for database memory? But I can't seem to get this right.
Perhaps my idea of how SHMBASE works is wrong, but surely I should be
able to use more than 2 gigs of memory for the database?
Ok, I finally figured out what is happening.
Shared memory base is currently set to 0x50000000L this is in hex,
translating this back to decimal we get 1342177280 bytes (1.28 gigs) as
the starting address for memory usage within the process space for the
database. 32 Bit Linux allows for 4 gigs to be addressed by a process:
1 gig is reserved for kernel and 3 gigs for user. Since we set the
start base address to 0x50000000L we have 3 gig - 1.28 gig = 1.72
gigs available for database memory!
Does this mean the only way I can use more is by pushing mapped base
address for the currently started process down?
Are there any other ways of having more memory available to the
database as it is frequently running low on memory and trying to
allocate more than is available. It did this when I had SHMTOTAL set to
0 or 3500000, I am currently trying to limit this by setting the value
to 1800000 to keep it within the limit.
Obviously I'd like the database to be able to use more of the currently
available memory. Would I need to run seperate instances to achieve
this?
I'm going to be trying changing the base address like the note said but
I've seen Oracle sites say something about setting up "bigpages" to get
around the 3 gig user space issue.
Is this something informix can use? I.E. if I set bigpages=4100MB then
would Informix be able to use this for the database?
Let me know if I am off the mark here.
We use strictly necessary cookies to make this site work. With your
consent we’d also use optional cookies for analytics and marketing. You can accept all,
reject all, or choose. Read our Cookie Policy.