mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Track statistics for spilling of changes from ReorderBuffer.
This adds the statistics about transactions spilled to disk from ReorderBuffer. Users can query the pg_stat_replication_slots view to check these stats and call pg_stat_reset_replication_slot to reset the stats of a particular slot. Users can pass NULL in pg_stat_reset_replication_slot to reset stats of all the slots. This commit extends the statistics collector to track this information about slots. Author: Sawada Masahiko and Amit Kapila Reviewed-by: Amit Kapila and Dilip Kumar Discussion: https://postgr.es/m/CA+fd4k5_pPAYRTDrO2PbtTOe0eHQpBvuqmCr8ic39uTNmR49Eg@mail.gmail.com
This commit is contained in:
@ -314,6 +314,15 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><structname>pg_stat_replication_slots</structname><indexterm><primary>pg_stat_replication_slots</primary></indexterm></entry>
|
||||
<entry>One row per replication slot, showing statistics about
|
||||
replication slot usage.
|
||||
See <link linkend="monitoring-pg-stat-replication-slots-view">
|
||||
<structname>pg_stat_replication_slots</structname></link> for details.
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><structname>pg_stat_wal_receiver</structname><indexterm><primary>pg_stat_wal_receiver</primary></indexterm></entry>
|
||||
<entry>Only one row, showing statistics about the WAL receiver from
|
||||
@ -2552,6 +2561,88 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="monitoring-pg-stat-replication-slots-view">
|
||||
<title><structname>pg_stat_replication_slots</structname></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>pg_stat_replication_slots</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
The <structname>pg_stat_replication_slots</structname> view will contain
|
||||
one row per logical replication slot, showing statistics about its usage.
|
||||
</para>
|
||||
|
||||
<table id="pg-stat-replication-slots-view" xreflabel="pg_stat_replication_slots">
|
||||
<title><structname>pg_stat_replication_slots</structname> View</title>
|
||||
<tgroup cols="1">
|
||||
<thead>
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
Column Type
|
||||
</para>
|
||||
<para>
|
||||
Description
|
||||
</para></entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>name</structfield> <type>text</type>
|
||||
</para>
|
||||
<para>
|
||||
A unique, cluster-wide identifier for the replication slot
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>spill_txns</structfield> <type>bigint</type>
|
||||
</para>
|
||||
<para>
|
||||
Number of transactions spilled to disk after the memory used by
|
||||
logical decoding exceeds <literal>logical_decoding_work_mem</literal>. The
|
||||
counter gets incremented both for toplevel transactions and
|
||||
subtransactions.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>spill_count</structfield> <type>bigint</type>
|
||||
</para>
|
||||
<para>
|
||||
Number of times transactions were spilled to disk. Transactions
|
||||
may get spilled repeatedly, and this counter gets incremented on every
|
||||
such invocation.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>spill_bytes</structfield> <type>bigint</type>
|
||||
</para>
|
||||
<para>
|
||||
Amount of decoded transaction data spilled to disk.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>stats_reset</structfield> <type>timestamp with time zone</type>
|
||||
</para>
|
||||
<para>
|
||||
Time at which these statistics were last reset
|
||||
</para></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="monitoring-pg-stat-wal-receiver-view">
|
||||
<title><structname>pg_stat_wal_receiver</structname></title>
|
||||
|
||||
@ -4802,6 +4893,27 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i
|
||||
can be granted EXECUTE to run the function.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="func_table_entry"><para role="func_signature">
|
||||
<indexterm>
|
||||
<primary>pg_stat_reset_replication_slot</primary>
|
||||
</indexterm>
|
||||
<function>pg_stat_reset_replication_slot</function> ( <type>text</type> )
|
||||
<returnvalue>void</returnvalue>
|
||||
</para>
|
||||
<para>
|
||||
Resets statistics to zero for a single replication slot, or for all
|
||||
replication slots in the cluster. The argument can be either the name
|
||||
of the slot to reset the stats or NULL. If the argument is NULL, all
|
||||
counters shown in the <structname>pg_stat_replication_slots</structname>
|
||||
view for all replication slots are reset.
|
||||
</para>
|
||||
<para>
|
||||
This function is restricted to superusers by default, but other users
|
||||
can be granted EXECUTE to run the function.
|
||||
</para></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
Reference in New Issue
Block a user