PostgreSQL版:

effective_io_concurrency

设置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.

条评论