Hi,
 
Thank you for all responses. I am reading AIX materials and started from IBM link that Jim sent (malloc subsystem explanations).
 
Is it all about:

Malloc Disclaim

Malloc Disclaim is an optional extension of the malloc subsystem, providing the user with a means to enable the automatic disclaiming of memory returned by the free subroutine. This is useful in instances where a process has a high paging-space usage, but is not actually using the memory.
Malloc Disclaim is not enabled by default. It can be enabled and configured prior to process startup through the MALLOCOPTIONS environment variable, as follows:
MALLOCOPTIONS=disclaim
We are going to test "Watson" more carefully and play with MALLOCOPTIONS. Be sure that you will hear me again :)
 
Kind regards
Pawel
 
Dnia 6-02-2009 o godz. 21:05 Greg Cooper napisał(a):
The output from the WHERE (V) command needs some clarification. I've repeated the output below.....

The line that says "Memory: Free 43,755,392   Used 2,095,398,288" comes, I believe, directly from a call to mallinfo().

This means that according to the OS there is 2GB of memory in use that nobody else can use and there is about 42Mb of memory in the free space chain that will get re-used.

While Pat is mostly correct in saying that the combined figures represent a "high watermark", there is in fact only 42Mb for re-use. The other 2GB is still marked by the OS as being in use and so will never be re-used.

For example, if you run another program that requires 100 Mb, then as the 2GB is still marked as being in use, the OS will have to create more space to accomodate this and so the "high watermark" will become even higher.

It looks like a memory leak to me.

It could also be named COMMON variables having a very large string inside them.

Greg


Can anyone explain me what "Free" and "Used" means in below output:
858    16        rx0044      3981556  Port 858 details at 06:08:08 06
FEB 2009
                                        Thread type Normal
                                        Usage Count 72 from 100K
                                        Application Open Files 14654 , Actual O/S Open Files 181
                                        Memory: Free 43,755,392  Used 2,095,398,288
                                        READ's 192042 , WRITE's 14167
                                        DELETE's 1315 , CLEARFILE's 0
                                        EXECUTE's 3 , INPUT's 0
                                        OPEN's 14676
                                    ---- jsh -Jb -c tSA 60
                                        Program performing EXECUTE/PERFORM at jsh.b,59
                                    ---- tSA 60
                                        Program running normally at F.WRITE,72

From: pat <[email protected]>
To: jBASE <[email protected]>
Sent: Friday, 6 February, 2009 19:53:25
Subject: Re: jBASE 4.1.5.17 - does anyone face "out of memory" problems after SSELECT? (was: Re: jBASE 4.1.5.17 - does anyone face "out of memory" problems?)


Yep, the 'free' ( null pointer ) above is incorrect
The particular memory allocation it is 'free'ing at the time was
already freed a couple of instructions earlier
[ 'no names, no pack drill' ;-) ]

So although this 'double free'ing is an issue that will be corrected,
it does not account for the excessive memory use.

( Hopefully ) A clarification on the 'memory used' figure shown by
'mw42' when the '-m' option is not used

The 'memory figure' displayed is the 'high watermark'

If the 'm' option is used, or you type 'm' ( without the quotes )
whilst 'mw42' is running,  the 'memory' will be displayed in two
columns as 'Free memory' and 'Memory currently being used'

The combined total of these two values should add upto the 'high
watermark value' ( displayed without the 'm' option )

Viewing only the 'high watermark value' explains why you are not
seeing this value increase, until the process actually requires more
memory than it has previously used.

'memory requests' will generally be satisfied by obtaining memory from
the 'Free memory'. Only when the process' memory requirement cannot be
satisfied from the 'Free memory',
will additional memory be requested from the 'system', and
consequently the 'high watermark value' will show an increase

This memory will be 'given' to the 'Free memory' when it is no longer
required, rather than being released back to the system

So basically what I am trying to say is :

  The memory value shown by 'mw42' ( without the 'm' option ) is NOT
the amount of memory currently being used by the process, but is the
maximum amount of memory that has been required by the process at some
previous point, ie this displayed value does NOT indicate a 'memory
leak'

Pat.

On 5 Feb, 15:22, "Pawel (privately)" <[email protected]> wrote:
> Hi,
>
> Story continues...
>
> We have found out that during night/batch processing memory utilisation
> grows significantly after SSELECT is performed by the session. Moreover
> these memory blocks seem not to be reclaimed until process dies.
>
> We did a simple test after my colleague suggestion. Here are details:
> a) session A: login to jshell, check your port via WHO command
> b) session B: run SSELECT on large table with many IDs, preferably right
> justified or with some non-standard characters like asterrisk, comma,
> dot, question mark, etc.
> c) session A: quickly, meanwhile, run MW42
> -p<port_number_from_session_A_WHO> and observe memory allocation
>
> Process will hit some number and stay at this level, say 200 MB which is
> still quite too much for me.
>
> Run a SSELECT on smaller table with lower number of IDs and observe
> memory allocation. Memory usage will stay at the same level, say 200 MB.
>
> Run a SSELECT on largest table you have with many IDs. You will see that
> additional memory is allocated at some point - say you will finally
> reach 400 MB.
>
> This sorting buffer seems never to shrink.
>
> I know that previously I suggested that perhaps "transaction buffer" is
> not downsized, but we can easily tell that session that runs SSELECTs
> can allocate more and more memory.
>
> I am confused and still does not know wheter memory leaks or not.
>
> We have also quickly changed to "MALLOCTYPE=watson" on test area and
> here is interesting output:
> jsh techuser ~ -->SSELECT <largetable>
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at
> jQLSortProcessor.cpp,721(select.b,145)
> jBASE: Attempting to free NULL pointer at ...
>
> read more Âť



----------------------------------------------------
Weź udział w akcji: Zakochana Polska!
Prześlij "serducho miłości" - Kliknij:
http://klik.wp.pl/?adr=http://corto.www.wp.pl/as/14luty.html&sid=636
--~--~---------~--~----~------------~-------~--~----~
Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines

IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24

To post, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to