From: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
---|---|
To: | Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Masahiko Sawada <masahiko(dot)sawada(at)2ndquadrant(dot)com>, "tsunakawa(dot)takay(at)fujitsu(dot)com" <tsunakawa(dot)takay(at)fujitsu(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: SLRU statistics |
Date: | 2020-05-02 16:59:05 |
Message-ID: | 20200502165905.brfxv6dk5vjdbgti@development |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2020-05-02 18:02:38 | Re: Protocol problem with GSSAPI encryption? |
Previous Message | Dmitry Dolgov | 2020-05-02 15:14:23 | Re: WIP: WAL prefetch (another approach) |