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!
>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.
I think we could simply add pgstat_send_slru() right after the existing
call in CheckpointerMain, right?
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services