Thread: Memory context usage

Memory context usage

From
Adriano Lange
Date:
Hi,

How can I get the used memory of a memory context?

Is there some function like:

int getMemoryUsage( MemoryContext )

?

I still working in a subplan cache for a query optimizer and I need to know
whether a temporary memory context is in certain limits.

Thanks

Adriano


Re: Memory context usage

From
Tom Lane
Date:
Adriano Lange <alange0001@gmail.com> writes:
> How can I get the used memory of a memory context?

MemoryContextStats() might help.  It just dumps the info to stderr
though.
        regards, tom lane


Re: Memory context usage

From
Greg Smith
Date:
On Fri, 28 Aug 2009, Tom Lane wrote:

> MemoryContextStats() might help.  It just dumps the info to stderr
> though.

Which means it ends up in the database log files in the common 
configuration where where the database's stderr is redirected to there. 
I even script running this regularly against stuff I'm suspicious of, 
using something like this passed the PID of the process I want to watch:

#!/bin/bash
gdb -p $1 <<EOF
p MemoryContextStats(TopMemoryContext)
detach
quit
EOF

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD


Re: Memory context usage

From
Adriano Lange
Date:
On Fri, Aug 28, 2009 at 5:18 AM, Greg Smith<gsmith@gregsmith.com> wrote:
> On Fri, 28 Aug 2009, Tom Lane wrote:
>
>> MemoryContextStats() might help.  It just dumps the info to stderr
>> though.
>
> Which means it ends up in the database log files in the common configuration
> where where the database's stderr is redirected to there. I even script
> running this regularly against stuff I'm suspicious of, using something like
> this passed the PID of the process I want to watch:
>
> #!/bin/bash
> gdb -p $1 <<EOF
> p MemoryContextStats(TopMemoryContext)
> detach
> quit
> EOF
>
> --
> * Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD
>

Is there another way to get it in the source code?
I need to control the size of a memory context on the fly and take
some actions when
the used memory exceeds a defined size.

Thanks

Adriano


Re: Memory context usage

From
Tom Lane
Date:
Adriano Lange <alange0001@gmail.com> writes:
> I need to control the size of a memory context on the fly and take
> some actions when
> the used memory exceeds a defined size.

The existing places that do that sort of thing do their own counting
of how much they've allocated.
        regards, tom lane


Re: Memory context usage

From
Adriano Lange
Date:
Tom Lane escreveu:
> Adriano Lange <alange0001@gmail.com> writes:
>> I need to control the size of a memory context on the fly and take
>> some actions when
>> the used memory exceeds a defined size.
> 
> The existing places that do that sort of thing do their own counting
> of how much they've allocated.

I have seen that the AllocSet structure is hid by MemoryContext which 
has only a stderr output interface for its stats. I would need these 
stats internally but maybe this is only my demand for now.

Thanks for attention.

Adriano