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.
Mars Chen (IDS 11.50.UC6, RHEL) saw virtual shared memory growing as forked esql/c programs connected, inserted and exited. onmode -F freed a lot of memory. Art Kagel suspected fragmentation and advised a persistent insert server. John Miller III showed an sysadmin ph_task entry to run onmode -F daily at 3AM. Mars agreed to use socket servers.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Dear All...
I've an IDS 11.50.uc6 running in RedHat Enterprise 5.2 ,
some of my applications do the following to IDS in an endless loop :
fork an esql/c application to connect IDS,insert data,and then die ,
such kind of actions will do hundreds of thousand time in a period ,
I observe the results of "onstat -g seg" , virtual segment blkused
is getting more , blkfree is reducing ...
What I don't understand is that , although I fork a lot of esql/c aps
to do something , but those aps just die for seconds ,
not always there , the "onstat -g ses" showes sessions don't grow ,
while "onstat -g seg" showes virtual segment blkused always growing ,
the "top" showes oninit got 670M --->672M-->674M ...
sometimes IDS have to add another virtual segment memory to handle !
Does anyone can tell me what cause it ?! Any suggestion ?!
Does onmode -F free up the memory blocks? Your application may be
fragmenting shared memory so that requests for larger blocks are causing new
allocations to be required.
Asside: Why not just rewrite the insert application as a server that takes
in requests to insert data via tcp/ip, named or private pipe, or a msg queue
or some other method and performs the insert but maintains a persistent
connections to the engine and just stays in memory waiting for more work?
Simpler and MUCH faster since each insert won't have to wait for connect
overhead - also loweroverhead inside the IDS engine? It's not a difficult
rewrite.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
See you at the 2010 IIUG Informix Conference
April 25-28, 2010
Overland Park (Kansas City), KS
www.iiug.org/conf
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Mon, Jan 25, 2010 at 9:42 PM, MARS CHEN <mars@jsun.com> wrote:
> Dear All...
>
> I've an IDS 11.50.uc6 running in RedHat Enterprise 5.2 ,
> some of my applications do the following to IDS in an endless loop :
> fork an esql/c application to connect IDS,insert data,and then die ,
> such kind of actions will do hundreds of thousand time in a period ,
> I observe the results of "onstat -g seg" , virtual segment blkused
> is getting more , blkfree is reducing ...
>
> What I don't understand is that , although I fork a lot of esql/c aps
> to do something , but those aps just die for seconds ,
> not always there , the "onstat -g ses" showes sessions don't grow ,
> while "onstat -g seg" showes virtual segment blkused always growing ,
> the "top" showes oninit got 670M --->672M-->674M ...
> sometimes IDS have to add another virtual segment memory to handle !
>
> Does anyone can tell me what cause it ?! Any suggestion ?!
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--001517475ec2976899047e0f8e93
Dear Art ...
onmode -F really free a lot of memory !!
Just last week we upgrade IDS from 7.31 to 11.50.uc6 ,
the 7.31 didn't act like 11.50 engine ,
that is why I wonder what are the differences between those 2 engines ?!
I totally agree with you , I need some socket servers to
deal with DB , that should reduce IDS' burden ...
Thanks for your kind response !!
If you want to have the engine run the onmode -F once a day at 3AM you can
use the following statement to schedule a database task.
As informix execute the following statement in the sysadmin database.
INSERT INTO ph_task
(
tk_name,
tk_type,
tk_group,
tk_description,
tk_execute,
tk_start_time,,
tk_stop_time,,,
tk_frequency,,,
)
VALUES
(
"Release Memory",
"TASK",
"PERFORMANCE",
"Attempt to release memory and unused memory segments.",
"EXECUTE FUNCTION admin('onmode','F')",
DATETIME(3:00:00) HOUR TO SECOND,
NULL,INTERVAL ( 1 ) DAY TO DAY
);
John F. Miller III
STSM, Support Architect
miller3@us.ibm.com
503-578-5645
IBM Informix Dynamic Server (IDS)
ids-bounces@iiug.org wrote on 01/26/2010 03:55:59 PM:
> [image removed]
>
> Re: IDS shared memory segment question [18780]
>
> MARS CHEN
>
> to:
>
> ids
>
> 01/26/2010 03:56 PM
>
> Sent by:
>
> ids-bounces@iiug.org
>
> Please respond to ids
>
> Dear Art ...
>
> onmode -F really free a lot of memory !!>
> Just last week we upgrade IDS from 7.31 to 11.50.uc6 ,
> the 7.31 didn't act like 11.50 engine ,
> that is why I wonder what are the differences between those 2 engines ?!
>
> I totally agree with you , I need some socket servers to
> deal with DB , that should reduce IDS' burden ...
>
> Thanks for your kind response !!
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
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.