Параметры инициализации PostgreSQL

Параметры конфигурации PostgreSQL задаются в файле postgresql.conf. Изменения большинства этих параметров требуют перезапуска кластера базы данных PostgreSQL.

Ниже приведены некоторые рекомендации по изменению настроек в PostgreSQL для повышения производительности с ArcGIS.

ПримечаниеПримечание:

Настройки и параметры меняются в зависимости от операционной системы. Прочитайте Документацию PostgreSQL, чтобы узнать об использовании и настройке этих параметров.

max_connections

По умолчанию значение max_connections в PostgreSQL равно 100. Одно подключение клиента ArcGIS соответствует двум подключениям к PostgreSQL.

При настройке параметра PostgreSQL max_connections, следует учитывать число подключений, использующихся приложениями, а также количество различных клиентских приложений, которые могут подключаться одновременно. Например, если один пользователь подключается к базе данных из ArcMap и ArcCatalog, для каждого приложения выделяется по два подключения, т.е. четыре подключения на одного пользователя. Кроме того, если тот же пользователь запускает скрипт геообработки, этот скрипт использует два подключения в течение всего время работы.

Также, следует учитывать веб-приложения, которые подключаются к базе данных. Для ArcIMS, подключения считаются по одному на каждую ветку каждого пространственного сервера. По умолчанию, каждый тип сервера использует две ветки. Некоторые типы сервисов используют более одного типа сервера; поэтому, число подключений равняется числу сервисов, умноженному на число веток. Для веб-приложений ArcGIS for Server, подключения считаются по числу экземпляров сервиса: количество подключений равно числу работающих экземпляров. Следует помнить, что веб-приложения могут использовать более одного сервиса; поэтому, число подключений равняется числу сервисов, умноженному на число работающих экземпляров. Для пользовательских приложений необходимо определить, сколько подключений используется каждым приложением, и разделить его на оценочное количество необходимых подключений.

Кроме того, необходимо учитывать и число подключений, которое предназначено для пользователей superuser, что определяется параметром PostgreSQL super_user_reserved. Когда число одновременных подключений достигает значения max_connections минус superuser_reserved_connections, новые подключения принимаются для пользователей superuser. Если вы оставите настройки обоих параметров по умолчанию, то, по достижении 97 одновременных подключений, остальные 3 подключения могут быть использованы только для пользователей superuser.

Если вы изменили значение этого параметра, необходимо перезапустить кластер базы данных PostgreSQL. Также, имейте в виду, что при увеличении этого значения, необходимо увеличить значение shared_buffers, поскольку его минимальное значение зависит от значения max_connections.

shared_buffers

Параметр shared_buffers задает объем памяти, использующийся под буфер разделяемой памяти сервером базы данных PostgreSQL. По умолчанию, используется 32 MB, но это значение может быть меньше, если ядро UNIX не поддерживает такой объем. Это значение должно составлять 128 KB или более, и, как минимум, 16 KB, умноженные на значение параметра max_connections. В документации PostgreSQL указано, что, для достижения приемлемой производительности, значение этого параметра должно быть значительно выше минимального. Рекомендуется использовать несколько десятков MB для установленного экземпляра.

Если вы изменили значение этого параметра, необходимо перезапустить кластер базы данных.

max_fsm_pages и max_fsm_relations

Эти два параметра используются только в PostgreSQL 8.4.x и более ранних версиях. Они используются для настройки размера карты общего свободного пространства, в которой хранится информация о местоположении неиспользованного пространства в базе данных. Параметр max_fsm_pages задает максимальное количество страниц диска, для которых отслеживается свободное пространство с помощью карты свободного пространства. Для каждой страницы необходимо шест байт в разделяемой памяти. Значение этого параметра должно быть, как минимум, в 16 раз больше значения max_fsm_relations. Значение по умолчанию определяется в initdb, в зависимости от объема доступной памяти, и может варьировать от 20 KB до 200 KB. Параметр max_fsm_relations задает максимальное количество отношений, для которых отслеживается свободное пространство с помощью карты свободного пространства. По умолчанию, используется 1000 отношений. Оба этих параметра можно задать только при запуске сервера.

Можно использовать команду базы данных VACUUM VERBOSE, чтобы определить пригодность текущих настроек. Соответствующая информация находится в нескольких последних строках сообщения VACUUM VERBOSE. Сообщение NOTICE выводится, если текущие значения слишком малы.

wal_buffers

Параметр wal_buffers задает объем памяти, использующийся в разделяемой памяти для данных регистрации записи с упреждением (WAL). По умолчанию, используется значение 64 KB. Это значение необходимо задать достаточно большим, чтобы сохранить данные WAL, сгенерированный одной типичной транзакцией, поскольку данные записываются на диск при завершении каждой транзакции. Этот параметр можно задать только при запуске сервера.

ПримечаниеПримечание:

Увеличение значений предыдущих параметров может привести к запросу сервером PostgreSQL большего объема разделяемой памяти System V, чем позволяет настройка по умолчанию операционной системы Linux. Изучите раздел "Управление ресурсами ядра" в Документации PostgreSQL, чтобы узнать об изменении распределения разделяемой памяти.

5/10/2014