Thread: Memory context usage
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
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
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
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
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
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