Версия PostgreSQL:

effective_io_concurrency

Задаёт допустимое число параллельных операций ввода/вывода, которое говорит &project; о том, сколько операций ввода/вывода могут быть выполнены одновременно. Чем больше это число, тем больше операций ввода/вывода будет пытаться выполнить параллельно &project; в отдельном сеансе. Допустимые значения лежат в интервале от 1 до 1000, а нулевое значение отключает асинхронные запросы ввода/вывода. В настоящее время этот параметр влияет только на сканирование по битовой карте.

Хорошим начальным значением этого параметра будет число отдельных дисков, составляющих массив RAID 0 или RAID 1, если база данных размещена в нём. (Для RAID 5 следует исключить один диск (как диск с чётностью).) Однако, если база данных часто обрабатывает множество запросов в различных сеансах, и при небольших значениях дисковый массив может быть полностью загружен. Если продолжать увеличивать это значение при полной загрузке дисков, это приведёт только к увеличению нагрузки на процессор.

Для более экзотических систем, таких как хранилище в памяти или внешний RAID-массив, где ограничение накладывает пропускная способность шины, оптимальным значением может быть число доступных каналов ввода/вывода. Для выбора лучшего значения могут потребоваться некоторые эксперименты.

Асинхронный ввод/вывод зависит от эффективности функции posix_fadvise, которая отсутствует в некоторых операционных системах. В случае её отсутствия попытка задать для этого параметра любое ненулевое значение приведёт к ошибке. В некоторых системах (например, в Solaris), эта функция присутствует, но на самом деле ничего не делает.

По умолчанию 1, если система это поддерживает, а иначе — 0.

Рекомендации [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.

Комментарии