From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Masahiko Sawada <masahiko.sawada@2ndquadrant.com>
Cc: tsunakawa.takay@fujitsu.com <tsunakawa.takay@fujitsu.com>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Subject: Re: SLRU statistics
Date: Sat, 2 May 2020 18:59:05 +0200
Message-ID: <20200502165905.brfxv6dk5vjdbgti@development> (raw)
In-Reply-To: <20200502105500.hwhba3d6s3hlrqf6@development>
References: <20200229205518.xrxo535zgd7cl6no@development>
<20200327004111.md4suoi6u5suv2qe@development>
<20200328002630.2nz5y3dvymqnvxtv@development>
<20200402004136.wodwftan45mcwggm@development>
<f02fd0ec-a240-b5bf-9992-5faf582738f1@oss.nttdata.com>
<20200430181901.24tlriahmafi4sfn@development>
<0e1c8904-13be-ab70-0096-54f0b30e43ba@oss.nttdata.com>
<20200502000818.nn4kpewiput42bnb@development>
<49b8ad17-f6d9-a086-a952-ff1fec3ac1b3@oss.nttdata.com>
<20200502105500.hwhba3d6s3hlrqf6@development>
On Sat, May 02, 2020 at 12:55:00PM +0200, Tomas Vondra wrote:
>On Sat, May 02, 2020 at 03:56:07PM +0900, Fujii Masao wrote:
>>
>> ...
>
>>>>Another thing I found is; pgstat_send_slru() should be called also by
>>>>other processes than backend? For example, since clog data is flushed
>>>>basically by checkpointer, checkpointer seems to need to send slru stats.
>>>>Otherwise, pg_stat_slru.flushes would not be updated.
>>>>
>>>
>>>Hmmm, that's a good point. If I understand the issue correctly, the
>>>checkpointer accumulates the stats but never really sends them because
>>>it never calls pgstat_report_stat/pgstat_send_slru. That's only called
>>>from PostgresMain, but not from CheckpointerMain.
>>
>>Yes.
>>
>>>I think we could simply add pgstat_send_slru() right after the existing
>>>call in CheckpointerMain, right?
>>
>>Checkpointer sends off activity statistics to the stats collector in
>>two places, by calling pgstat_send_bgwriter(). What about calling
>>pgstat_send_slru() just after pgstat_send_bgwriter()?
>>
>
>Yep, that's what I proposed.
>
>>In previous email, I mentioned checkpointer just as an example.
>>So probably we need to investigate what process should send slru stats,
>>other than checkpointer. I guess that at least autovacuum worker,
>>logical replication walsender and parallel query worker (maybe this has
>>been already covered by parallel query some mechanisms. Sorry I've
>>not checked that) would need to send its slru stats.
>>
>
>Probably. Do you have any other process type in mind?
>
I've looked at places calling pgstat_send_* functions, and I found
thsese places:
src/backend/postmaster/bgwriter.c
- AFAIK it merely writes out dirty shared buffers, so likely irrelevant.
src/backend/postmaster/checkpointer.c
- This is what we're already discussing here.
src/backend/postmaster/pgarch.c
- Seems irrelevant.
I'm a bit puzzled why we're not sending any stats from walsender, which
I suppose could do various stuff during logical decoding.
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: tomas.vondra@2ndquadrant.com, masao.fujii@oss.nttdata.com, alvherre@2ndquadrant.com, masahiko.sawada@2ndquadrant.com, tsunakawa.takay@fujitsu.com
Subject: Re: SLRU statistics
In-Reply-To: <20200502165905.brfxv6dk5vjdbgti@development>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox