IDS shared memory segment question
Posted in 2010
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL
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 ?!
Dear All ....
Seems "onmode -F" would do a lot of help ,
after "onmode -F" , the virtual segment shared memoryreally
free a lot ~!!
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.
>
Related threads
- Posting from the Informix-list
- Migrating from IDS 9.40.UC6 to 11.50.UC3
- Ip for a network session
- questions onstat -g