Re: Add statistics to pg_stat_wal view for wal related parameter tuning
От | Masahiro Ikeda |
---|---|
Тема | Re: Add statistics to pg_stat_wal view for wal related parameter tuning |
Дата | |
Msg-id | 729d83f87da2cfbca4343e577f2e20a1@oss.nttdata.com обсуждение исходный текст |
Ответ на | Re: Add statistics to pg_stat_wal view for wal related parameter tuning (Kyotaro Horiguchi <horikyota.ntt@gmail.com>) |
Список | pgsql-hackers |
On 2020-10-21 18:03, Kyotaro Horiguchi wrote: > At Tue, 20 Oct 2020 16:11:29 +0900, Masahiro Ikeda > <ikedamsh@oss.nttdata.com> wrote in >> On 2020-10-20 12:46, Amit Kapila wrote: >> > I see that we also need to add extra code to capture these stats (some >> > of which is in performance-critical path especially in >> > XLogInsertRecord) which again makes me a bit uncomfortable. It might >> > be that it is all fine as it is very important to collect these stats >> > at cluster-level in spite that the same information can be gathered at >> > statement-level to help customers but I don't see a very strong case >> > for that in your proposal. > > We should avoid that duplication as possible even if the both number > are important. > >> Also about performance, I thought there are few impacts because it >> increments stats in memory. If I can implement to reuse pgWalUsage's >> value which already collects these stats, there is no impact in >> XLogInsertRecord. >> For example, how about pg_stat_wal() calculates the accumulated >> value of wal_records, wal_fpi, and wal_bytes to use pgWalUsage's >> value? > > I don't think that works, but it would work that pgstat_send_wal() > takes the difference of that values between two successive calls. > > WalUsage prevWalUsage; > ... > pgstat_send_wal() > { > .. > /* fill in some values using pgWalUsage */ > WalStats.m_wal_bytes = pgWalUsage.wal_bytes - > prevWalUsage.wal_bytes; > WalStats.m_wal_records = pgWalUsage.wal_records - > prevWalUsage.wal_records; > WalStats.m_wal_wal_fpi = pgWalUsage.wal_fpi - > prevWalUsage.wal_fpi; > ... > pgstat_send(&WalStats, sizeof(WalStats)); > > /* remember the current numbers */ > prevWalUsage = pgWalUsage; Thanks for your advice. This code can avoid the performance impact of critical code. By the way, what do you think to add these statistics to the pg_stat_wal view? I thought to remove the above statistics because there is advice that PG13's features, for example, pg_stat_statement view, vacuum log, and so on can cover use-cases. regards, -- Masahiro Ikeda NTT DATA CORPORATION
В списке pgsql-hackers по дате отправления: