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 ยป

--~--~---------~--~----~------------~-------~--~----~
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