mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Enable IO concurrency on all systems
Previously effective_io_concurrency and maintenance_io_concurrency could not be set above 0 on machines without fadvise support. AIO enables IO concurrency without such support, via io_method=worker. Currently only subsystems using the read stream API will take advantage of this. Other users of maintenance_io_concurrency (like recovery prefetching) which leverage OS advice directly will not benefit from this change. In those cases, maintenance_io_concurrency will have no effect on I/O behavior. Author: Melanie Plageman <melanieplageman@gmail.com> Reviewed-by: Noah Misch <noah@leadboat.com> Discussion: https://postgr.es/m/CAAKRu_atGgZePo=_g6T3cNtfMf0QxpvoUh5OUqa_cnPdhLd=gw@mail.gmail.com
This commit is contained in:
@ -2585,8 +2585,7 @@ include_dir 'conf.d'
|
||||
session attempts to initiate in parallel. The allowed range is
|
||||
<literal>1</literal> to <literal>1000</literal>, or
|
||||
<literal>0</literal> to disable issuance of asynchronous I/O requests.
|
||||
The default is <literal>16</literal> on supported systems, otherwise
|
||||
<literal>0</literal>.
|
||||
The default is <literal>16</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -2597,8 +2596,9 @@ include_dir 'conf.d'
|
||||
</para>
|
||||
|
||||
<para>
|
||||
On systems without prefetch advice support, attempting to configure
|
||||
any value other than <literal>0</literal> will error out.
|
||||
On systems with prefetch advice support,
|
||||
<varname>effective_io_concurrency</varname> also controls the
|
||||
prefetch distance.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -2621,10 +2621,10 @@ include_dir 'conf.d'
|
||||
for maintenance work that is done on behalf of many client sessions.
|
||||
</para>
|
||||
<para>
|
||||
The default is <literal>16</literal> on supported systems, otherwise
|
||||
<literal>0</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"/>).
|
||||
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>
|
||||
|
@ -88,7 +88,7 @@ ALTER TABLESPACE <replaceable>name</replaceable> RESET ( <replaceable class="par
|
||||
and <varname>maintenance_io_concurrency</varname>.
|
||||
Setting these values for a particular tablespace will override the
|
||||
planner's usual estimate of the cost of reading pages from tables in
|
||||
that tablespace, and the executor's prefetching behavior, as established
|
||||
that tablespace, and how many concurrent I/Os are issued, as established
|
||||
by the configuration parameters of the
|
||||
same name (see <xref linkend="guc-seq-page-cost"/>,
|
||||
<xref linkend="guc-random-page-cost"/>,
|
||||
|
@ -110,7 +110,7 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
|
||||
and <varname>maintenance_io_concurrency</varname>.
|
||||
Setting these values for a particular tablespace will override the
|
||||
planner's usual estimate of the cost of reading pages from tables in
|
||||
that tablespace, and the executor's prefetching behavior, as established
|
||||
that tablespace, and how many concurrent I/Os are issued, as established
|
||||
by the configuration parameters of the
|
||||
same name (see <xref linkend="guc-seq-page-cost"/>,
|
||||
<xref linkend="guc-random-page-cost"/>,
|
||||
|
Reference in New Issue
Block a user