Home Explore Blog CI



postgresql

40th chunk of `doc/src/sgml/config.sgml`
d6636f7de1c4e0e507e4a9381ebc5d9ce213694dd06ac5360000000100000fa0
 have the most impact on higher latency storage
         where queries otherwise experience noticeable I/O stalls and on
         devices with high IOPs. Unnecessarily high values may increase I/O
         latency for all queries on the system
        </para>

        <para>
         On systems with prefetch advice support,
         <varname>effective_io_concurrency</varname> also controls the
         prefetch distance.
        </para>

        <para>
         This value can be overridden for tables in a particular tablespace by
         setting the tablespace parameter of the same name (see <xref
         linkend="sql-altertablespace"/>).
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="guc-maintenance-io-concurrency" xreflabel="maintenance_io_concurrency">
       <term><varname>maintenance_io_concurrency</varname> (<type>integer</type>)
       <indexterm>
        <primary><varname>maintenance_io_concurrency</varname> configuration parameter</primary>
       </indexterm>
       </term>
       <listitem>
        <para>
         Similar to <varname>effective_io_concurrency</varname>, but used
         for maintenance work that is done on behalf of many client sessions.
        </para>
        <para>
         The default is <literal>16</literal>.  This value can be overridden
         for tables in a particular tablespace by setting the tablespace
         parameter of the same name (see <xref
         linkend="sql-altertablespace"/>).
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="guc-io-max-combine-limit" xreflabel="io_max_combine_limit">
       <term><varname>io_max_combine_limit</varname> (<type>integer</type>)
       <indexterm>
        <primary><varname>io_max_combine_limit</varname> configuration parameter</primary>
       </indexterm>
       </term>
       <listitem>
        <para>
         Controls the largest I/O size in operations that combine I/O, and silently
         limits the user-settable parameter <varname>io_combine_limit</varname>.
         This parameter can only be set in
         the <filename>postgresql.conf</filename> file or on the server
         command line.
         The maximum possible size depends on the operating system and block
         size, but is typically 1MB on Unix and 128kB on Windows.
         The default is 128kB.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="guc-io-combine-limit" xreflabel="io_combine_limit">
       <term><varname>io_combine_limit</varname> (<type>integer</type>)
       <indexterm>
        <primary><varname>io_combine_limit</varname> configuration parameter</primary>
       </indexterm>
       </term>
       <listitem>
        <para>
         Controls the largest I/O size in operations that combine I/O.  If set
         higher than the <varname>io_max_combine_limit</varname> parameter, the
         lower value will silently be used instead, so both may need to be raised
         to increase the I/O size.
         The maximum possible size depends on the operating system and block
         size, but is typically 1MB on Unix and 128kB on Windows.
         The default is 128kB.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="guc-io-max-concurrency" xreflabel="io_max_concurrency">
       <term><varname>io_max_concurrency</varname> (<type>integer</type>)
       <indexterm>
        <primary><varname>io_max_concurrency</varname> configuration parameter</primary>
       </indexterm>
       </term>
       <listitem>
        <para>
         Controls the maximum number of I/O operations that one process can
         execute simultaneously.
        </para>
        <para>
         The default setting of <literal>-1</literal> selects a number based
         on <xref linkend="guc-shared-buffers"/> and the maximum number of
         processes (<xref linkend="guc-max-connections"/>, <xref
         linkend="guc-autovacuum-worker-slots"/>, <xref
    

Title: I/O Configuration: maintenance_io_concurrency, io_max_combine_limit, io_combine_limit, and io_max_concurrency
Summary
This section details I/O configuration parameters in PostgreSQL. `maintenance_io_concurrency` is similar to `effective_io_concurrency` but applies to maintenance tasks (default 16) and can be overridden at the tablespace level. `io_max_combine_limit` and `io_combine_limit` control the maximum I/O size in operations that combine I/O, with the former being a system-level limit and the latter a user-configurable parameter (default 128kB). `io_max_concurrency` controls the maximum number of concurrent I/O operations a process can execute (default -1, based on shared_buffers and max process count).