PostgreSQL版:

effective_io_concurrency

设置PostgreSQL预计可以同时执行的并发磁盘的I/O操作数。 增大该数值将增加任何单独的PostgreSQL会话尝试并行启动的I/O操作数。 允许的范围是1到1000,或者零禁用发出异步I/O请求。目前,此设置只影响堆位图扫描。

这个设置很好的起点是包括一个RAID 0或用于数据库的RAID 1镜像的单独驱动器数。 (对于RAID 5奇偶校验驱动器不应该计算在内。) 然而,如果数据库经常忙于在并发会话中发出多个查询, 更低的数值可能是足够的,以保持磁盘阵列繁忙。 比需要保持磁盘繁忙更大的值将只会造成额外的CPU开销。

对于更奇特的系统,如基于内存的存储或由总线带宽限制的RAID阵列 ,正确的值可能是可用I/O路径数。一些试验可能需要找到最好的值。

异步I/O依赖于有效的posix_fadvise功能, 其中一些是操作系统所缺乏的。如果函数不存在,那么这个参数设置为任何东西, 但是零将导致错误。在某些操作系统上(例如Solaris),函数存在,但实际上并没有做任何事情。

建议 [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.

条评论