Мои сайты
Частые вопросы
Полезные ссылки
Операционные системы
Программное обеспечение
Оборудование
СУБД
Кулинария
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
субд:postgresql:настройка_postgresql_для_использования_с_1с [2022/07/07 04:22] mihanik |
субд:postgresql:настройка_postgresql_для_использования_с_1с [2025/06/26 16:24] (текущий) mihanik [UPD] |
||
---|---|---|---|
Строка 15: | Строка 15: | ||
Опирался на [[https:// | Опирался на [[https:// | ||
- | Для вычислений используются 2 параметра: | + | Для вычислений используется 2 параметра: |
* количество ОЗУ, которое вы готовы отдать PostgreSQL; | * количество ОЗУ, которое вы готовы отдать PostgreSQL; | ||
Строка 31: | Строка 31: | ||
* одно ядро процессора и 4 Гб ОЗУ отдаём под нужды ОС. | * одно ядро процессора и 4 Гб ОЗУ отдаём под нужды ОС. | ||
* Половину оставшихся ядер и половину оставшейся оперативки отдаём под нужды PostgreSQL. | * Половину оставшихся ядер и половину оставшейся оперативки отдаём под нужды PostgreSQL. | ||
+ | |||
+ | ====== UPD ====== | ||
+ | |||
+ | **26.06.2025** | ||
+ | |||
+ | Для автоматизирования настройки набросал небольшой скрипт для Linux | ||
+ | |||
+ | <code bash PG-Tune.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Задаём путь к файлу с настройками | ||
+ | PGConf=~/ | ||
+ | # | ||
+ | |||
+ | # Задаём размер ОЗУ в мегабайтах, | ||
+ | |||
+ | MyMem=32768 | ||
+ | |||
+ | # Задаём количество ядер процессора, | ||
+ | |||
+ | MyCPU=6 | ||
+ | |||
+ | ( | ||
+ | echo '# | ||
+ | echo '# CUSTOMIZED BY MIHANIK OPTIONS' | ||
+ | echo '# | ||
+ | |||
+ | echo " | ||
+ | |||
+ | # | ||
+ | echo " | ||
+ | |||
+ | # Выключение шифрования, | ||
+ | echo "ssl = off" | ||
+ | |||
+ | # Количество памяти, | ||
+ | # Эта память разделяется между всеми процессами PostgreSQL. | ||
+ | echo " | ||
+ | |||
+ | # Количество памяти, | ||
+ | # Эта память разделяется между всеми процессами PostgreSQL. | ||
+ | echo " | ||
+ | |||
+ | # Лимит памяти для обработки одного запроса. | ||
+ | # work_mem = RAM/32..64 или 32MB..128MB | ||
+ | echo " | ||
+ | |||
+ | # maintenance_work_mem = RAM/16..32 или work_mem * 4 или 256MB..4GB | ||
+ | echo " | ||
+ | |||
+ | # Сброс буферов на диск (выполнение PostgerSQL системных вызовов fsync()). | ||
+ | # Выключение параметра приводит к росту производительности, | ||
+ | # значительный риск потери всех данных при внезапном выключении питания. | ||
+ | echo "fsync = on" | ||
+ | |||
+ | # Выключение синхронной записи в WAL момент коммита транзакции. | ||
+ | # Создает риск потери последних нескольких транзакций (в течении 0.5-1" секунды), | ||
+ | # но гарантирует целостность базы данных. Может значительно увеличить производительность. | ||
+ | echo " | ||
+ | |||
+ | # Минимальное и максимальный объем WAL файлов. | ||
+ | # Аналогично checkpoint_segments. | ||
+ | echo " | ||
+ | echo " | ||
+ | |||
+ | # Групповой коммит нескольких транзакций. | ||
+ | # Имеет смысл включать, | ||
+ | echo " | ||
+ | echo " | ||
+ | |||
+ | # Время сна между циклами записи на диск фонового процесса записи. | ||
+ | echo " | ||
+ | |||
+ | # Параметры, | ||
+ | # За один цикл bgwriter записывает не больше, | ||
+ | echo " | ||
+ | echo " | ||
+ | |||
+ | # Включение автовакуума. | ||
+ | echo " | ||
+ | |||
+ | # Количество процессов автовакуума. | ||
+ | # Общее правило - чем больше запросов на запись выполняется в системе | ||
+ | # (такие системы называются OLTP), тем больше процессов. | ||
+ | # autovacuum_max_workers =" CPU " | ||
+ | if [ $((MyCPU /4 )) -lt 4 ]; | ||
+ | then | ||
+ | echo " | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | |||
+ | # Время сна процесса автовакуума. Слишком большая величина будет приводить к тому, что таблицы не будут успевать «чиститься», | ||
+ | # что приведет у роста размера и снижению производительности работы. Малая величина приведет к бесполезной нагрузке. | ||
+ | echo " | ||
+ | |||
+ | # Значение по умолчанию – 8000, его не нужно уменьшать. | ||
+ | echo " | ||
+ | |||
+ | # effective_cache_size =" RAM - " | ||
+ | # Оценка планировщика запроса о размере дискового кеша, доступного для одного запроса. | ||
+ | echo " | ||
+ | |||
+ | # random_page_cost = 1.5-2.0 для RAID, 1.1-1.3 для SSD | ||
+ | # Стоимость чтения рандомной страницы, | ||
+ | echo " | ||
+ | |||
+ | # Задаёт максимальное число элементов в списке FROM, до которого планировщик будет объединять вложенные запросы с внешним запросом. | ||
+ | # При меньших значениях сокращается время планирования, | ||
+ | echo " | ||
+ | |||
+ | # Задаёт максимальное количество элементов в списке FROM, до достижения которого планировщик будет сносить в него явные конструкции JOIN (за исключением FULL JOIN). | ||
+ | # При меньших значениях сокращается время планирования, | ||
+ | echo " | ||
+ | |||
+ | # GEQO - генетический оптимизатор запросов PоstgreSQL, | ||
+ | echo "geqo = on" | ||
+ | |||
+ | # Задаёт минимальное число элементов во FROM, при котором для планирования запроса будет привлечён генетический оптимизатор. | ||
+ | echo " | ||
+ | |||
+ | # Оценочное значение одновременных запросов к дисковой системе, | ||
+ | echo " | ||
+ | |||
+ | # Разрешить использовать символ \ для экранирования. | ||
+ | echo " | ||
+ | |||
+ | #Не выдавать предупреждение о использовании символа \ для экранирования. | ||
+ | echo " | ||
+ | |||
+ | # Максимальное число блокировок индексов/ | ||
+ | # Для высоконагруженных систем с большими конфигурациями с большим числом таблиц рекомендуется устанавливать значение больше, | ||
+ | echo " | ||
+ | |||
+ | # Количество одновременных соединений. | ||
+ | # Для высоконагруженных систем с большим числом одновременных пользователей рекомендуется устанавливать значение больше, | ||
+ | echo " | ||
+ | |||
+ | # В общем случае мы не рекомендуем использовать синхронное автообновление статистики, | ||
+ | # что фоновое обновление не дает нужного результата / оптимизатор часто ошибается в оценке количества строк. | ||
+ | echo " | ||
+ | |||
+ | ) >> | ||
+ | </ | ||
[[# | [[# | ||