Freeing memory when onmode -F doesnt
Posted in 2011
Topics: High Availability & Replication, Server Administration, Platform-Specific Issues, Versions, Editions & End-of-Life
Hoping someone can help or explain why onmode -F does not free on segments
We having the following case
There are no user thread on system only user is informix.
We are using enterprise replication.
The segs were added when a big job ran.But were not released when job ended
and I did onmode -F.
Is the only way to free mem to restart the engine?
HP-UX wuast130 B.11.23 U 9000/800
IBM Informix Dynamic Server Version 11.50.FC6 -- On-Line -- Up 6 days 20:57:16
-- 173068 Kbytes
Segment Summary:
id key addr size ovhd class blkused blkfree
327692 52574801 c0000000158b0000 61353984 1156288 R 14978 1
1572886 52574803 c000000019333000 16777216 198072 V 3415 681
4128793 52574804 c0000000af562000 16777216 198072 V 1328 2768
5832730 52574805 c0000000b0562000 16777216 198072 V 2551 1545
327693 52574802 c0000000b4318000 65536000 769560 V 14793 1207
Total: - - 177221632 - - 37065 6202
Probably because there are buffers in use.
You could consider running
cdr stop
onmode -Fcdr start
But unless there is a problem with having the segments, then I wouldn't
worry about that.
There used to be a rather heavy pensility with have more than 2 SHM
segments on HPUX, which was caused by having to swtch between more than 2
segments. When the bufferpool and the virtual memory segment were two
segments this would tend to create a problem. But we've combined the
bufferpool and the virtual segment, so that shouldn't be a major issue.
M.P.
From: "KARL OLIVER" <karl.oliver@maf.govt.nz>
To: ids@iiug.org
Date: 01/27/2011 04:50 PM
Subject: Freeing memory when onmode -F doesnt [22619]
Sent by: ids-bounces@iiug.org
Hoping someone can help or explain why onmode -F does not free on segments
We having the following case
There are no user thread on system only user is informix.
We are using enterprise replication.
The segs were added when a big job ran.But were not released when job ended
and I did onmode -F.
Is the only way to free mem to restart the engine?
HP-UX wuast130 B.11.23 U 9000/800
IBM Informix Dynamic Server Version 11.50.FC6 -- On-Line -- Up 6 days
20:57:16
-- 173068 Kbytes
Segment Summary:
id key addr size ovhd class blkused blkfree
327692 52574801 c0000000158b0000 61353984 1156288 R 14978 1
1572886 52574803 c000000019333000 16777216 198072 V 3415 681
4128793 52574804 c0000000af562000 16777216 198072 V 1328 2768
5832730 52574805 c0000000b0562000 16777216 198072 V 2551 1545
327693 52574802 c0000000b4318000 65536000 769560 V 14793 1207
Total: - - 177221632 - - 37065 6202
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.
Original post:
Hoping someone can help or explain why onmode -F does not free on segments
We having the following case
There are no user thread on system only user is informix.
We are using enterprise replication.
The segs were added when a big job ran.But were not released when job ended
and I did onmode -F.
Is the only way to free mem to restart the engine?
HP-UX wuast130 B.11.23 U 9000/800
IBM Informix Dynamic Server Version 11.50.FC6 -- On-Line -- Up 6 days 20:57:16
-- 173068 Kbytes
Segment Summary:
id key addr size ovhd class blkused blkfree
327692 52574801 c0000000158b0000 61353984 1156288 R 14978 1
1572886 52574803 c000000019333000 16777216 198072 V 3415 681
4128793 52574804 c0000000af562000 16777216 198072 V 1328 2768
5832730 52574805 c0000000b0562000 16777216 198072 V 2551 1545
327693 52574802 c0000000b4318000 65536000 769560 V 14793 1207
Total: - - 177221632 - - 37065 6202
Response:
First off, yes, if onmode -F doesn't release the segments then the only way to
get rid of them is to restart the server.
Now as to why onmode -F can't free the segment...onmode -F can only free an
added segment if there are no used blocks in the segment. Once the server had
to start allocating new segments, it's possible that persistent engine threads
(non user sqlexec ones) had to allocate memory and if they allocated from the
newly added dynamic segments, it possible that they can't free that memory. So
if they can't free that memory, those segments would then never be able to get
the used block count to zero, and thus couldn't be freed via onmode -F.
Jacques Renaut
IBM Informix Advanced Support
APD Team
THanks for the information folks. I did hear that it was bad to have several segs on HP-UX hence the questiom On one production instance we have 11 V seg. On this instance I will need to increase SHMVIRTSIZE when I get the chance.