Re: SLRU statistics - Mailing list pgsql-hackers

From Tomas Vondra
Subject Re: SLRU statistics
Date
Msg-id 20200502105500.hwhba3d6s3hlrqf6@development
Whole thread Raw
In response to Re: SLRU statistics  (Fujii Masao <masao.fujii@oss.nttdata.com>)
Responses Re: SLRU statistics
List pgsql-hackers
On Sat, May 02, 2020 at 03:56:07PM +0900, Fujii Masao wrote:
>
>
>On 2020/05/02 9:08, Tomas Vondra wrote:
>>On Fri, May 01, 2020 at 11:49:51AM +0900, Fujii Masao wrote:
>>>
>>>
>>>On 2020/05/01 3:19, Tomas Vondra wrote:
>>>>On Fri, May 01, 2020 at 03:02:59AM +0900, Fujii Masao wrote:
>>>>>
>>>>>
>>>>>On 2020/04/02 9:41, Tomas Vondra wrote:
>>>>>>Hi,
>>>>>>
>>>>>>I've pushed this after some minor cleanup and improvements.
>>>>>
>>>>>+static char *slru_names[] = {"async", "clog", "commit_timestamp",
>>>>>+                              "multixact_offset", "multixact_member",
>>>>>+                              "oldserxid", "pg_xact", "subtrans",
>>>>>+                              "other" /* has to be last */};
>>>>>
>>>>>When I tried pg_stat_slru, I found that it returns a row for "pg_xact".
>>>>>But since there is no "pg_xact" slru ("clog" slru exists instead),
>>>>>"pg_xact" should be removed? Patch attached.
>>>>>
>>>>
>>>>Yeah, I think I got confused and accidentally added both "clog" and
>>>>"pg_xact". I'll get "pg_xact" removed.
>>>
>>>Thanks!
>>>
>>
>>OK, pushed. Thanks!
>
>Thanks a lot!
>
>But, like the patch that I attached in the previous email does,
>"pg_xact" should be removed from the description of pg_stat_reset_slru()
>in monitoring.sgml.
>

Whooops. My bad, will fix.

>>>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?

>Atsushi-san reported another issue in pg_stat_slru.
>You're planning to work on that?
>https://postgr.es/m/CACZ0uYFe16pjZxQYaTn53mspyM7dgMPYL3DJLjjPw69GMCC2Ow@mail.gmail.com
>

Yes, I'll investigate.


regards

-- 
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Unify drop-by-OID functions
Next
From: Amit Kapila
Date:
Subject: Re: Rotten parts of src/backend/replication/README