RE: About to add WAL write/fsync statistics to pg_stat_wal view
Masahiro Ikeda <ikedamsh@oss.nttdata.com>
From: Masahiro Ikeda <ikedamsh@oss.nttdata.com>
To: kuroda.hayato@fujitsu.com
Cc: japin <japinli@hotmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-01-25T03:53:05Z
Lists: pgsql-hackers
On 2021-01-25 10:34, kuroda.hayato@fujitsu.com wrote: > Dear Ikeda-san, > > Thank you for updating the patch. This can be applied to master, and > can be used on my RHEL7. > wal_write_time and wal_sync_time increase normally :-). > > ``` > postgres=# select * from pg_stat_wal; > -[ RECORD 1 ]----+------------------------------ > wal_records | 121781 > wal_fpi | 2287 > wal_bytes | 36055146 > wal_buffers_full | 799 > wal_write | 12770 > wal_write_time | 4.469 > wal_sync | 11962 > wal_sync_time | 132.352 > stats_reset | 2021-01-25 00:51:40.674412+00 > ``` Thanks for checking. > I put a further comment: > > ``` > @@ -3485,7 +3485,53 @@ SELECT pid, wait_event_type, wait_event FROM > pg_stat_activity WHERE wait_event i > <structfield>wal_buffers_full</structfield> <type>bigint</type> > </para> > <para> > - Number of times WAL data was written to disk because WAL > buffers became full > + Total number of times WAL data was written to disk because WAL > buffers became full > + </para></entry> > + </row> > + > + <row> > + <entry role="catalog_table_entry"><para > role="column_definition"> > + <structfield>wal_write</structfield> <type>bigint</type> > + </para> > + <para> > + Total number of times WAL data was written to disk > + </para></entry> > + </row> > + > + <row> > + <entry role="catalog_table_entry"><para > role="column_definition"> > + <structfield>wal_write_time</structfield> <type>double > precision</type> > + </para> > + <para> > + Total amount of time that has been spent in the portion of > + WAL data was written to disk, in milliseconds > + (if <xref linkend="guc-track-wal-io-timing"/> is enabled, > otherwise zero). > + </para></entry> > + </row> > + > + <row> > + <entry role="catalog_table_entry"><para > role="column_definition"> > + <structfield>wal_sync</structfield> <type>bigint</type> > + </para> > + <para> > + Total number of times WAL data was synced to disk > + (if <xref linkend="guc-wal-sync-method"/> is > <literal>open_datasync</literal> or > + <literal>open_sync</literal>, this value is zero because WAL > data is synced > + when to write it). > + </para></entry> > + </row> > + > + <row> > + <entry role="catalog_table_entry"><para > role="column_definition"> > + <structfield>wal_sync_time</structfield> <type>double > precision</type> > + </para> > + <para> > + Total amount of time that has been spent in the portion of > + WAL data was synced to disk, in milliseconds > + (if <xref linkend="guc-track-wal-io-timing"/> is enabled, > otherwise zero. > + if <xref linkend="guc-wal-sync-method"/> is > <literal>open_datasync</literal> or > + <literal>open_sync</literal>, this value is zero too because > WAL data is synced > + when to write it). > </para></entry> > </row> > ``` > > Maybe "Total amount of time" should be used, not "Total number of > time." > Other views use "amount." Thanks. I checked columns' descriptions of other views. There are "Number of xxx", "Total number of xxx", "Total amount of time that xxx" and "Total time spent xxx". Since the "time" is used for showing spending time, not count, I'll change it to "Total number of WAL data written/synced to disk". Thought? Regards, -- Masahiro Ikeda NTT DATA CORPORATION
Commits
-
Send statistics collected during shutdown checkpoint to the stats collector.
- b82640df0062 14.0 landed
-
Force to send remaining WAL stats to the stats collector at walwriter exit.
- 33394ee6f243 14.0 landed
-
Track total amounts of times spent writing and syncing WAL data to disk.
- ff99918c625a 14.0 landed
-
Retry short writes when flushing WAL.
- 79ce29c734c6 9.4.0 cited