effective_io_concurrency

类型: integer
默认: 1
最低限度: 0
最大: 1000
上下文: user
重新开始: false

设置PostgreSQL可以同时被执行的并发磁盘 I/O 操作的数量。调高这个值,可以增加任何单个PostgreSQL会话试图并行发起的 I/O 操作的数目。 允许的范围是 1 到 1000,或 0 表示禁用异步 I/O 请求。当前这个设置仅影响位图堆扫描。

对于磁盘驱动器,这个设置的一个很好的出发点是组成一个被用于该数据库的 RAID 0 条带或 RAID 1 镜像的独立驱动器数量(对 RAID 5 而言,校验驱动器不计入)。但是, 如果数据库经常忙于在并发会话中发出的多个查询,较低的值可能足以使磁盘阵列繁忙。比保持磁盘繁忙所需的值更高的值只会造成额外的 CPU 开销。SSD 以及其他基于内存的存储常常能处理很多并发请求,因此它们的最佳值可能是数百。

异步 I/O 依赖于一个有效的posix_fadvise函数(一些操作系统可能没有)。 如果不存在这个函数,将这个参数设置为除 0 之外的任何东西将导致错误。在一些操作系统上(如Solaris)虽然提供了这个函数,但它不会做任何事情。

在支持的系统上默认值为 1,否则为 0。对于一个特定表空间中的表,可以通过设定该表空间的同名参数(见sql-altertablespace)可以覆盖这个值。

建议 [EN]

Set to the number of disks in your RAID array or number of I/O channels. Available only for platforms with posix_fadvise support (i.e. Linux). Currently only affects the execution of parallel bitmapscan, but might affect other I/O operations in future versions.

条评论