PostgreSQL. Часть 2. Нюансы настройки сервера PostgreSQL

В моем блоге уже был цикл статей с конспектом по MySQL. Эта одна из публикаций цикла конспектов по PostgreSQL. Материал этих публикаций не особо структурирован и представляет собой просто мои заметки – конспектировал что-то новое и то, что я посчитал интересным и важным. Во второй статье я отражу наиболее важные моменты, которые я отметил в ходе изучения того, какие есть нюансы настройки сервера PostgreSQL.

Список литературы

При подготовке этого конспекта я использовал следующие материалы:

1. Книга PostgreSQL 14 Administration Cookbook.

2. Курс DBA1: Администрирование PostgreSQL 13. Базовый курс.

Нюансы настройки сервера PostgreSQL

Для больших баз данных имеет смысл увеличить параметр shared_buffers. Стандартное значение этого параметра равно 128 МБ (для версии PostgreSQL 12). Можно задачать гораздо более высокое значение, но стоит помнить, что в случае указания очень большого размера параметра есть риск использование всей оперативной памяти и большая нагрузка на файл подкачки (swap). Я находил разные рекомендации по значению этого параметра – в среднем – это 25-50% размера доступной оперативной памяти.

В случае загрузки или изменения большого количества данных имеет смыссл поднять значения для конфигурационных параметров max_wal_size и min_wal_size (WAL – Write-Ahead Logging, журнал транзакций). Это позволит разгрузить дисковую подсистему. В дополнении при таком сценарии также стоит подобрать необходимые параметры для checkpoint_timeout и checkpoint_completion_target.

Также в случае использования больших запросов стоит увеличить значение конфигурационного параметра work_mem. Но нужно предельно аккуратно повышать значение этого параметра и вести наблюдение, т.к. слишком высокое значение этого параметра можно очень быстро израсходовать всю имеющуюся оперативную память и уйти в swap.

В некоторых случаях стоит попробовать увеличить параметр temp_buffers и повторно выполнить замеры производительнотси. Особенно стоит подобрать оптимальное значения для этого параметра в случае использования PostgreSQL в качестве сервера баз данных для 1С.

По умолчанию автоматическая очистка включена (autovacuum). Убедитесь, что автоматическая очистка не отключена в конфигурационных файла. Настоятельно рекомендуется оставлять автоматическую очистку включенной.

Не выключайте параметр fsync (fsync=off) в кофигурационном файле postgresql.conf. При отключении параметра fsync возможжны сценарии потери данных в случае аварийного выключения сервера.

Еще один из вариантов внесения изменений в конфигурационный файл – это использование файла postgresql.auto.conf. Его содержимое читается после файла postgresql.conf. Внесение парамтеров в этот файл выполняется через ALTER SYSTEM и необходимо в том случае, если вы не можете вносить изменения в файл postgresql.conf. Вносить изменения можно непосредственно через консольный клиент psql. Например, изменение значение параметра work_mem:

ALTER SYSTEM SET work_mem TO '16MB';

Другие связанные статьи

PostgreSQL. Часть 1. Информационные запросы PostgreSQL

PostgreSQL. Часть 3. Управление сервером PostgreSQL

PostgreSQL. Часть 4. Безопасность в PostgreSQL

PostgreSQL. Часть 5. Мониторинг и диагностика PostgreSQL

PostgreSQL. Часть 6. Регулярное обслуживание PostgreSQL

PostgreSQL. Часть 7. Производительность и конкурентный доступ PostgreSQL

PostgreSQL. Часть 8. Резервное копирование и восстановление PostgreSQL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *