Re: Get memory contexts of an arbitrary backend process - Mailing list pgsql-hackers

From torikoshia
Subject Re: Get memory contexts of an arbitrary backend process
Date
Msg-id fd78be66959cbf3957a329bb069ab737@oss.nttdata.com
Whole thread Raw
In response to Re: Get memory contexts of an arbitrary backend process  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Responses Re: Get memory contexts of an arbitrary backend process
List pgsql-hackers
On 2021-03-26 14:08, Kyotaro Horiguchi wrote:
> At Fri, 26 Mar 2021 14:02:49 +0900, Fujii Masao
> <masao.fujii@oss.nttdata.com> wrote in
>> 
>> 
>> On 2021/03/26 13:28, Kyotaro Horiguchi wrote:
>> >> "some contexts are omitted"
>> >> "n child contexts: total_bytes = ..."
>> > Sorry I missed that is already implemented.  So my opnion is I agree
>> > with limiting with a fixed-number, and preferablly sorted in
>> > descending order of... totalspace/nblocks?
>> 
>> This may be an improvement, but makes us modify
>> MemoryContextStatsInternal()
>> very much. I'm afraid that it's too late to do that at this stage...
>> What about leaving the output order as it is at the first version?
> 
> So I said "preferably":p  (with a misspelling...)
> I'm fine with that.
> 
> regards.

Thanks for the comments!

Attached a new patch.

It adds pg_log_backend_memory_contexts(pid) which logs memory contexts
of the specified backend process.

The number of child contexts to be logged per parent is limited to 100
as with MemoryContextStats().

As written in commit 7b5ef8f2d07, which limits the verbosity of
memory context statistics dumps, it supposes that practical cases
where the dump gets long will typically be huge numbers of
siblings under the same parent context; while the additional
debugging value from seeing details about individual siblings
beyond 100 will not be large.

Thoughts?


Regards.
Attachment

pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: Hybrid Hash/Nested Loop joins and caching results from subplans
Next
From: Zhihong Yu
Date:
Subject: Re: Hybrid Hash/Nested Loop joins and caching results from subplans