pgpro_tune

pgpro_tune — утилита командной строки для автоматической настройки

Синтаксис

pgpro_tune [параметр...] [ -D | --pgdata ]каталогимя_пресета

Описание

pgpro_tune — это утилита командной строки для автоматической настройки. Оптимальные значения различных параметров конфигурации Postgres Pro зависят от оборудования. Утилита pgpro_tune собирает информацию о системе и преобразует её в набор параметров, записываемых в файл конфигурации.

Использование

Использование pgpro_tune включено в initdb по умолчанию. Для этой утилиты предусмотрено два параметра initdb: --no-tune отключает её использование, --tune=OPTIONS позволяет передавать дополнительные параметры для запуска pgpro_tune.

Сначала pgpro_tune запускает стандартный пресет. Дополнительные пресеты могут быть заданы с помощью параметра -P или --preset=NAME, или путём указания имени пресета в качестве последнего аргумента командной строки. Чтобы отключить стандартный пресет, используйте параметр --no-default.

Дополнительные параметры можно указать с помощью -O или --options=OPTIONS для любого пресета, но для пресета по умолчанию следует использовать --default-options=OPTIONS.

Дополнительные переменные окружения для пресета можно установить в параметре --set NAME=VALUE. Эти значения будут одинаковыми как для пресета по умолчанию, так и для всех пользовательских.

По умолчанию пресеты размещаются в каталоге share, но можно указать их расположение вручную в параметре --preset-dir=NAME.

По умолчанию pgpro_tune работает с файлом конфигурации postgresql.conf, расположенным в каталоге данных. Каталог данных можно указать с помощью -D или --pgdata=DATADIR, либо задать с помощью переменной окружения PGDATA. При запуске pgpro_tune в initdb утилита будет использовать каталог данных initdb.

Файл конфигурации также можно указать с помощью --config-file=FILENAME.

Утилита pgpro_tune записывает свои изменения в отдельный блок в конце файла конфигурации с комментарием, что он был добавлен pgpro_tune. За подробностями обратитесь к примеру пресета.

Параметры

--config-file=имя_файла

Указывает имя основного файла конфигурации.

-D каталог_данных
--pgdata=каталог_данных

Указывает каталог, где будет храниться кластер баз данных.

--default-options=параметры

Задаёт параметры для стандартного пресета.

--no-default

Отключает стандартный пресет. Обратите внимание, что в этом случае обязательно должен быть указан другой пресет либо с помощью параметра -P, либо в качестве последнего параметра в виде имени этого пресета.

-O параметры-пресета
--options=параметры-пресета

Указывает параметры, которые необходимо передать непосредственно пресету, заданному ранее в параметре -P, или пресету, указанному в качестве последнего параметра командной строки, если -P не использовался.

-P имя
--preset=имя

Указывает имя пресета. Если указано несколько имён, пресеты выполняются по очереди с учётом вывода предыдущего пресета.

Примечание

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

--preset-dir=имя

Указывает каталог, содержащий пресеты. По умолчанию пресеты находятся в каталоге share.

--set имя=значение

Устанавливает переменную окружения для пресетов.

--show

Показывает все доступные пресеты из каталога, указанного в параметре --preset-dir, если он задан, или из каталога по умолчанию в противном случае.

-V
--version

Вывести версию pgpro_tune и завершиться.

-?
--help

Показать справку по аргументам командной строки pgpro_tune и завершиться.

Переменные окружения

pgpro_tune устанавливает следующие переменные окружения перед запуском пресетов.

  • EDITION — редакция Postgres Pro.

  • ENABLE_CRASH_INFO — если установлена, Postgres Pro был собран с параметром --enable-crash-info.

  • ENABLE_NLS — если установлена, Postgres Pro был собран с параметром --enable-nls.

  • ENABLE_PGPRO_TUNE — если установлена, Postgres Pro был собран с параметром --enable-pgpro-tune.

  • MEMMB — размер оперативной памяти в мегабайтах.

  • MVER — основная версия Postgres Pro.

  • NCPU — количество процессоров.

  • USE_BONJOUR — если установлена, Postgres Pro был собран с параметром --with-bonjour.

  • USE_BSD_AUTH — если установлена, Postgres Pro был собран с параметром --with-bsd-auth.

  • USE_ICU — если установлена, Postgres Pro был собран с параметром --with-icu.

  • USE_LDAP — если установлена, Postgres Pro был собран с параметром --with-ldap.

  • USE_LIBUNWIND — если установлена, Postgres Pro был собран с параметром --with-libunwind.

  • USE_LIBXML — если установлена, Postgres Pro был собран с параметром --with-libxml.

  • USE_LIBXSLT — если установлена, Postgres Pro был собран с параметром --with-libxslt.

  • USE_LLVM — если установлена, Postgres Pro был собран с параметром --with-llvm.

  • USE_LZ4 — если установлена, Postgres Pro был собран с параметром --with-lz4.

  • USE_OPENSSL — если установлена, Postgres Pro был собран с параметром --with-openssl.

  • USE_PAM — если установлена, Postgres Pro был собран с параметром --with-pam.

  • USE_SYSTEMD — если установлена, Postgres Pro был собран с параметром --with-systemd.

  • USE_ZSTD — если установлена, Postgres Pro был собран с параметром --with-zstd.

Создание пресетов

Пресет — это исполняемый файл, обычно скрипт оболочки, который преобразует информацию, передаваемую через переменные окружения, в набор параметров конфигурации.

Ожидаемый вывод пресета — набор специально отформатированных строк. Первый непробельный символ — индикатор интерпретации содержимого строки для pgpro_tune. Индикатор должен быть одним из следующих символов:

  • # для комментирования, остальная часть выходной строки будет записана в файл конфигурации после «#».

  • = для замены, остальная часть выходной строки должна содержать пару параметров NAME и VALUE (приемлемы оба варианта: NAME=VALUE и NAME VALUE). Строка NAME = VALUE будет записана в файл конфигурации. Текст после VALUE будет добавлен как комментарий.

  • =+ или += для добавления, остальная часть выходной строки должна содержать пару параметров NAME и VALUE. VALUE будет добавлен к предыдущему действующему значению параметра NAME сзади (=+) или спереди (+=). Если действующего значения нет, ADD работает как замена. Текст после VALUE будет добавлен как комментарий.

  • -= для отмены, остальная часть выходной строки должна содержать пару параметров NAME и VALUE. Если параметр NAME имеет действующее значение, содержащее VALUE, оно будет удалено, а остальная часть действующего значения останется прежней. Текст после VALUE будет добавлен в качестве комментария. Если действующего значения нет, ничего не меняется.

Пример пресета

Предположим, есть следующий файл конфигурации с именем test.conf:

work_mem = 4MB # Default value
shared_preload_libraries = 'plantuner'
search_path = '"$user",wrong_schema,public'

И следующий пресет с именем test.tune:

echo "# Adding new configuration parameters."
#Replace configuration parameter value by a new one
echo "work_mem = 8MB"
#Append to the start of existing value
echo "shared_preload_libraries += pg_stat_statements"
#Append to the end of existing value
echo "shared_preload_libraries =+ pg_prewarm"
#Withdraw from existing value
echo "search_path -= 'wrong_schema'"

Чтобы использовать этот пресет, выполните следующую команду:

pgpro_tune --config-file=/path/to/test.conf -P/path/to/test.tune --no-default

Эта команда приведёт к следующим изменениям файла конфигурации:

#------------------------------------------------------------------------------
# The following settings were added by pgpro_tune.
# pgpro_tune was run with the following options:
# --no-default --config-file=/path/to/test/conf -P/path/to/test/tune --no-default
# At YYYY-MM-DD HH:MM:SS
#------------------------------------------------------------------------------
# Adding new configuration parameters.
work_mem = 8MB
shared_preload_libraries = 'pg_stat_statements, plantuner'
shared_preload_libraries = 'pg_stat_statements, plantuner, pg_prewarm'
search_path = '"$user", public'
#------------------------------------------------------------------------------
# End of settings added by pgpro_tune at YYYY-MM-DD HH-MM-SS
#------------------------------------------------------------------------------
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy