Re: About to add WAL write/fsync statistics to pg_stat_wal view - Mailing list pgsql-hackers

From Masahiro Ikeda
Subject Re: About to add WAL write/fsync statistics to pg_stat_wal view
Date
Msg-id 65e99b78066ab1e3dc82a4e6f5e6f3cd@oss.nttdata.com
Whole thread Raw
In response to Re: About to add WAL write/fsync statistics to pg_stat_wal view  (Li Japin <japinli@hotmail.com>)
Responses Re: About to add WAL write/fsync statistics to pg_stat_wal view
List pgsql-hackers
On 2020-12-08 16:45, Li Japin wrote:
> Hi,
> 
>> On Dec 8, 2020, at 1:06 PM, Masahiro Ikeda <ikedamsh@oss.nttdata.com> 
>> wrote:
>> 
>> Hi,
>> 
>> I propose to add wal write/fsync statistics to pg_stat_wal view.
>> It's useful not only for developing/improving source code related to 
>> WAL
>> but also for users to detect workload changes, HW failure, and so on.
>> 
>> I introduce "track_wal_io_timing" parameter and provide the following 
>> information on pg_stat_wal view.
>> I separate the parameter from "track_io_timing" to 
>> "track_wal_io_timing"
>> because IIUC, WAL I/O activity may have a greater impact on query 
>> performance than database I/O activity.
>> 
>> ```
>> postgres=# SELECT wal_write, wal_write_time, wal_sync, wal_sync_time 
>> FROM pg_stat_wal;
>> -[ RECORD 1 ]--+----
>> wal_write      | 650  # Total number of times WAL data was written to 
>> the disk
>> 
>> wal_write_time | 43   # Total amount of time that has been spent in 
>> the portion of WAL data was written to disk
>>                      # if track-wal-io-timing is enabled, otherwise 
>> zero
>> 
>> wal_sync       | 78   # Total number of times WAL data was synced to 
>> the disk
>> 
>> wal_sync_time  | 104  # Total amount of time that has been spent in 
>> the portion of WAL data was synced to disk
>>                      # if track-wal-io-timing is enabled, otherwise 
>> zero
>> ```
>> 
>> What do you think?
>> Please let me know your comments.
>> 
>> Regards
>> --
>> Masahiro Ikeda
>> NTT DATA 
>> CORPORATION<0001_add_wal_io_activity_to_the_pg_stat_wal.patch>
> 
> There is a no previous prototype warning for ‘fsyncMethodCalled’, and
> it now only used in xlog.c,
> should we declare with static? And this function wants a boolean as a
> return, should we use
> true/false other than 0/1?
> 
> +/*
> + * Check if fsync mothod is called.
> + */
> +bool
> +fsyncMethodCalled()
> +{
> +       if (!enableFsync)
> +               return 0;
> +
> +       switch (sync_method)
> +       {
> +               case SYNC_METHOD_FSYNC:
> +               case SYNC_METHOD_FSYNC_WRITETHROUGH:
> +               case SYNC_METHOD_FDATASYNC:
> +                       return 1;
> +               default:
> +                       /* others don't have a specific fsync method */
> +                       return 0;
> +       }
> +}
> +

Thanks for your review.
I agree with your comments. I fixed them.

Regards
-- 
Masahiro Ikeda
NTT DATA CORPORATION
Attachment

pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: [Patch] Optimize dropping of relation buffers using dlist
Next
From: Denis Smirnov
Date:
Subject: Re: PoC Refactor AM analyse API