Home Explore Blog CI



postgresql

30th chunk of `doc/src/sgml/config.sgml`
67fa9e8bbe75645dc68d3f6ff79227746b973fd19c6f6f780000000100000fc3
 may be useful to control for this by separately
        setting <xref linkend="guc-autovacuum-work-mem"/>.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry id="guc-autovacuum-work-mem" xreflabel="autovacuum_work_mem">
      <term><varname>autovacuum_work_mem</varname> (<type>integer</type>)
      <indexterm>
       <primary><varname>autovacuum_work_mem</varname> configuration parameter</primary>
      </indexterm>
      </term>
      <listitem>
       <para>
        Specifies the maximum amount of memory to be used by each
        autovacuum worker process.
        If this value is specified without units, it is taken as kilobytes.
        It defaults to -1, indicating that
        the value of <xref linkend="guc-maintenance-work-mem"/> should
        be used instead.  The setting has no effect on the behavior of
        <command>VACUUM</command> when run in other contexts.
        This parameter can only be set in the
        <filename>postgresql.conf</filename> file or on the server command
        line.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry id="guc-vacuum-buffer-usage-limit" xreflabel="vacuum_buffer_usage_limit">
      <term>
       <varname>vacuum_buffer_usage_limit</varname> (<type>integer</type>)
       <indexterm>
        <primary><varname>vacuum_buffer_usage_limit</varname> configuration parameter</primary>
       </indexterm>
      </term>
      <listitem>
       <para>
        Specifies the size of the
        <glossterm linkend="glossary-buffer-access-strategy">Buffer Access Strategy</glossterm>
        used by the <command>VACUUM</command> and <command>ANALYZE</command>
        commands.  A setting of <literal>0</literal> will allow the operation
        to use any number of <varname>shared_buffers</varname>.  Otherwise
        valid sizes range from <literal>128 kB</literal> to
        <literal>16 GB</literal>.  If the specified size would exceed 1/8 the
        size of <varname>shared_buffers</varname>, the size is silently capped
        to that value.  The default value is <literal>2MB</literal>.  If
        this value is specified without units, it is taken as kilobytes.  This
        parameter can be set at any time.  It can be overridden for
        <xref linkend="sql-vacuum"/> and <xref linkend="sql-analyze"/>
        when passing the <option>BUFFER_USAGE_LIMIT</option> option.  Higher
        settings can allow <command>VACUUM</command> and
        <command>ANALYZE</command> to run more quickly, but having too large a
        setting may cause too many other useful pages to be evicted from
        shared buffers.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry id="guc-logical-decoding-work-mem" xreflabel="logical_decoding_work_mem">
      <term><varname>logical_decoding_work_mem</varname> (<type>integer</type>)
      <indexterm>
       <primary><varname>logical_decoding_work_mem</varname> configuration parameter</primary>
      </indexterm>
      </term>
      <listitem>
       <para>
        Specifies the maximum amount of memory to be used by logical decoding,
        before some of the decoded changes are written to local disk. This
        limits the amount of memory used by logical streaming replication
        connections. It defaults to 64 megabytes (<literal>64MB</literal>).
        Since each replication connection only uses a single buffer of this size,
        and an installation normally doesn't have many such connections
        concurrently (as limited by <varname>max_wal_senders</varname>), it's
        safe to set this value significantly higher than <varname>work_mem</varname>,
        reducing the amount of decoded changes written to disk.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry id="guc-commit-timestamp-buffers" xreflabel="commit_timestamp_buffers">
      <term><varname>commit_timestamp_buffers</varname> (<type>integer</type>)
      <indexterm>
       <primary><varname>commit_timestamp_buffers</varname>

Title: Configuration Parameters: Autovacuum Work Memory, Vacuum Buffer Usage Limit, Logical Decoding Work Memory
Summary
This section details several PostgreSQL configuration parameters relating to memory management for specific operations. It describes `autovacuum_work_mem`, which sets the memory limit for each autovacuum worker, defaulting to the value of `maintenance_work_mem`. Next, it explains `vacuum_buffer_usage_limit`, controlling the buffer access strategy for VACUUM and ANALYZE commands. Finally, it covers `logical_decoding_work_mem`, which limits the memory used by logical decoding before changes are written to disk, intended for logical streaming replication connections.