From b7b8f0b6096d2ab6e4f67980d19e478cf6fab629 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 12 Jan 2009 05:10:45 +0000 Subject: Implement prefetching via posix_fadvise() for bitmap index scans. A new GUC variable effective_io_concurrency controls how many concurrent block prefetch requests will be issued. (The best way to handle this for plain index scans is still under debate, so that part is not applied yet --- tgl) Greg Stark --- doc/src/sgml/config.sgml | 51 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) (limited to 'doc/src') diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 0d8cf0a84cb..7d21e31bdb5 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -1203,6 +1203,55 @@ SET ENABLE_SEQSCAN TO OFF; queries. + + + Asynchronous Behavior + + + + effective_io_concurrency (integer) + + effective_io_concurrency configuration parameter + + + + Sets the number of concurrent disk I/O operations that + PostgreSQL expects can be executed + simultaneously. Raising this value will increase the number of I/O + operations that any individual PostgreSQL session + attempts to initiate in parallel. The allowed range is 1 to 1000, + or zero to disable issuance of asynchronous I/O requests. + + + + A good starting point for this setting is the number of separate + drives comprising a RAID 0 stripe or RAID 1 mirror being used for the + database. (For RAID 5 the parity drive should not be counted.) + However, if the database is often busy with multiple queries issued in + concurrent sessions, lower values may be sufficient to keep the disk + array busy. A value higher than needed to keep the disks busy will + only result in extra CPU overhead. + + + + For more exotic systems, such as memory-based storage or a RAID array + that is limited by bus bandwidth, the correct value might be the + number of I/O paths available. Some experimentation may be needed + to find the best value. + + + + Asynchronous I/O depends on an effective posix_fadvise + function, which some operating systems lack. If the function is not + present then setting this parameter to anything but zero will result + in an error. On some operating systems the function is present but + does not actually do anything. On such systems setting a nonzero + value will add CPU overhead without improving performance. + + + + + -- cgit v1.2.3