Re: SLRU statistics
Fujii Masao <masao.fujii@oss.nttdata.com>
From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>,
Masahiko Sawada <masahiko.sawada@2ndquadrant.com>,
"tsunakawa.takay@fujitsu.com" <tsunakawa.takay@fujitsu.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2020-05-13T16:06:12Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix async.c to not register any SLRU stats counts in the postmaster.
- 7fd89f4d7a51 13.0 landed
-
Use proper GetDatum function in pg_stat_get_slru().
- 043e3e040160 13.0 landed
-
Initialize SLRU stats entries to zero.
- f3d23d83ef9a 13.0 landed
-
Remove pg_xact from pg_stat_reset_slru docs
- e685ca63ca4f 13.0 landed
-
Remove pg_xact entry from SLRU stats
- 2e08d314ed07 13.0 landed
-
Track SLRU page hits in SimpleLruReadPage_ReadOnly
- 2b88fdde30d8 13.0 landed
-
Fix typo in SLRU stats documentation
- 2c220ca46f3f 13.0 landed
-
Collect statistics about SLRU caches
- 28cac71bd368 13.0 landed
-
Simplify and rename some GUC variables, per various recent discussions:
- 48f7e6439568 8.3.0 cited
On 2020/05/14 0:38, Tom Lane wrote:
> Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
>> I think it counts as a variable with "static storage duration" per 6.7.8
>> (para 10), see [1]. I wasn't aware of this either, but it probably means
>> the memset is unnecessary.
>> Also, it seems a bit strange/confusing to handle this differently from
>> BgWriterStats. And that worked fine without the init for years ...
>
> Yeah, exactly.
>
> There might be merit in memsetting it if we thought that it could have
> become nonzero in the postmaster during a previous shmem cycle-of-life.
> But the postmaster really shouldn't be accumulating such counts; and
> if it is, then we have a bigger problem, because child processes would
> be inheriting those counts via fork.
In my previous test, I thought I observed that the counters are already
updated at the beginning of some processes. So I thought that
the counters need to be initialized. Sorry, that's my fault...
So I tried the similar test again and found that postmaster seems to be
able to increment the counters unless I'm missing something.
For example,
frame #2: 0x000000010d93845f postgres`pgstat_count_slru_page_zeroed(ctl=0x000000010de27320) at pgstat.c:6739:2
frame #3: 0x000000010d5922ba postgres`SimpleLruZeroPage(ctl=0x000000010de27320, pageno=0) at slru.c:290:2
frame #4: 0x000000010d6b9ae2 postgres`AsyncShmemInit at async.c:568:12
frame #5: 0x000000010d9da9a6 postgres`CreateSharedMemoryAndSemaphores at ipci.c:265:2
frame #6: 0x000000010d93f679 postgres`reset_shared at postmaster.c:2664:2
frame #7: 0x000000010d93d253 postgres`PostmasterMain(argc=3, argv=0x00007fad56402e00) at postmaster.c:1008:2
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION