Вопросы:Настройка конфигурации PostgreSQL в Linux: различия между версиями

Материал из Юпитер-8
Нет описания правки
Строка 16: Строка 16:
==Настройки Postgresql при большом количестве приборов==
==Настройки Postgresql при большом количестве приборов==
В данном описании указаны значения для комплекса при использовании 1000-1500 приборов:
В данном описании указаны значения для комплекса при использовании 1000-1500 приборов:
* max_connections = 300 # максимальное количество одновременных транзакций, рекомендуется подбирать в зависимости от потребностей ПО. Примерно в три раза больше значения '''''db.dataring.max'''''
* '''max_connections''' = 300 # максимальное количество одновременных транзакций, рекомендуется подбирать в зависимости от потребностей ПО. Примерно в три раза больше значения '''''db.dataring.max'''''
* superuser_reserved_connections = 10 # Разрешить резервирование соединений для служебного использования. Должен ускорять процесс перезагрузки PostgreSQL, а так же служебный функционал - создание/восстановление и обслуживание БД .
* '''superuser_reserved_connections''' = 10 # Разрешить резервирование соединений для служебного использования. Должен ускорять процесс перезагрузки PostgreSQL, а так же служебный функционал - создание/восстановление и обслуживание БД .
* shared_buffer = 2048MB # - Буфер PostgreSQL, который является наиболее эффективным настраиваемым параметром для большинства операционных систем. Задается значение - в среднем 25% от ОЗУ.
* '''shared_buffer''' = 2048MB # - Буфер PostgreSQL, который является наиболее эффективным настраиваемым параметром для большинства операционных систем. Задается значение - в среднем 25% от ОЗУ.
* temp_buffers = 512MB # - Объем ОЗУ выделяемый PostgreSQL для текущих временных операции. Обычно 25-50% от значения shared_buffer.
* '''temp_buffers''' = 512MB # - Объем ОЗУ выделяемый PostgreSQL для текущих временных операции. Обычно 25-50% от значения shared_buffer.
* max_prepared_transactions = 3 # Позволяет создавать дополнительные транзакции по наиболее частым операциям
* '''max_prepared_transactions''' = 3 # Позволяет создавать дополнительные транзакции по наиболее частым операциям
* work_mem = 256MB # -  если вам нужно выполнить сложную сортировку, увеличьте значение для получения хороших результатов. Рекомендуется 10-15% от shared_buffer.
* '''work_mem''' = 256MB # -  если вам нужно выполнить сложную сортировку, увеличьте значение для получения хороших результатов. Рекомендуется 10-15% от shared_buffer.
* maintenance_work_mem = 512MB # — это параметр памяти, используемый для задач обслуживания. Значение по умолчанию составляет 64 МБ. Установка большого значения помогает в таких задачах, как VACUUM, RESTORE, CREATE INDEX, ADD FOREIGN KEY и ALTER TABLE. Рекомендуется 25% от shared_buffer.
* '''maintenance_work_mem''' = 512MB # — это параметр памяти, используемый для задач обслуживания. Значение по умолчанию составляет 64 МБ. Установка большого значения помогает в таких задачах, как VACUUM, RESTORE, CREATE INDEX, ADD FOREIGN KEY и ALTER TABLE. Рекомендуется 25% от shared_buffer.
* wal_buffers = 256MB # - PostgreSQL сначала записывает записи в WAL (журнал предзаписи) в буферы, а затем эти буферы сбрасываются на диск. Размер буфера по умолчанию, составляет 16 МБ. Рекомендуется 10-15% от shared_buffer.
* '''wal_buffers''' = 256MB # - PostgreSQL сначала записывает записи в WAL (журнал предзаписи) в буферы, а затем эти буферы сбрасываются на диск. Размер буфера по умолчанию, составляет 16 МБ. Рекомендуется 10-15% от shared_buffer.
* effective_cache_size = 2048MB # Определяет представление планировщика об эффективном размере дискового кеша, доступном для одного запроса.
* '''effective_cache_size''' = 2048MB # Определяет представление планировщика об эффективном размере дискового кеша, доступном для одного запроса.
* checkpoint_timeout = 0.3 # -  используется для установки времени между контрольными точками WAL. Установка слишком низкого значения уменьшает время восстановления после сбоя, поскольку на диск записывается больше данных, но это также снижает производительность, поскольку каждая контрольная точка в конечном итоге потребляет ценные системные ресурсы. Рекомендаций нет, подбирается экспериментально, для начала можно использовать 0.25.
* '''checkpoint_timeout''' = 0.3 # -  используется для установки времени между контрольными точками WAL. Установка слишком низкого значения уменьшает время восстановления после сбоя, поскольку на диск записывается больше данных, но это также снижает производительность, поскольку каждая контрольная точка в конечном итоге потребляет ценные системные ресурсы. Рекомендаций нет, подбирается экспериментально, для начала можно использовать 0.25.


----
----

Версия от 11:30, 10 марта 2023


Общие настройки

  После установки ОС необходимо проверить настройки базы данных.
  По-умолчанию файлы конфигурации расположены:
  Linux - /etc/postgresql/9.6/main/
  Windows - C:\Program Files\PostgreSQL\9.6\data\ 

  Вначале необходимо проверить файл с конфигурацией разрешенных подключений. Для этого надо открыть файл pg_hba.conf и проверить его содержимое.
  В данном файле должны быть следующие строки:
  local       all        postgres                peer
  local       all        all                     peer
  host        all        all      127.0.0.1/32   md5
  "9.6" в пути каталога указывает на версию Postgresql.
  Вызвать файл на редактирование можно командой: sudo nano /etc/postgresql/9.6/main/pg_hba.conf
  Далее необходимо проверить настройки файла postgresql.conf. Его можно открыть командой: 
  sudo nano /etc/postgresql/9.6/main/postgresql.conf.
  Для оптимизации соединений к базе данных можно отредактировать следующие параметры:
  listen_adresses = 'localhost'
  max_connections = 300
  shared_buffers = 1024MB
     После внесённых изменений, Необходимо перезагрузить Postgresql - sudo /etc/init.d/postrgesql restart


В начало статьи

Изменение настроек в соответствии с запросами комплекса

После запуска ПО, с парамертами по умолчанию, система будет работать с количеством приборов до 300 штук. Если в охранной деятельности используется порядка 300-500 приборов, тогда необходимо внести изменения в файл smpo.properties.

 Рекомендуется изменить параметра db.dataring.max на 30.
 Если приборов 500-1000, параметр db.dataring.max=100.
 Если приборов больше 1000, тогда поставить значение 300.
 Если приборов 3000 и более рекомендуется выставить параметр в значение 500.

Так же необходимо проверить значение параметра server.threads.max.udp по умолчанию оно равно 1000 и указывает количество разрешенных одновременных подключений приборов. Однако необходимо учитывать, что при большом количестве приборов, могут возникнуть проблемы в случае массового отключения каналов связи. При восстановлении связи с сервером может формироваться очередь входящих сообщений, так как скорость обработки очереди зависит от многих физических значений комплекса, поэтому рекомендуется подобрать это значение экспериментально. Например, для начала установить значение 300 и после того как очередь, входящих сообщений будет разобрана, подобрать значение, когда количество входящих обращений не доходит до максимума, указанного в этом параметре. Если данный параметр отсутствует, его необходимо создать.

Настройки Postgresql при большом количестве приборов

В данном описании указаны значения для комплекса при использовании 1000-1500 приборов:

  • max_connections = 300 # максимальное количество одновременных транзакций, рекомендуется подбирать в зависимости от потребностей ПО. Примерно в три раза больше значения db.dataring.max
  • superuser_reserved_connections = 10 # Разрешить резервирование соединений для служебного использования. Должен ускорять процесс перезагрузки PostgreSQL, а так же служебный функционал - создание/восстановление и обслуживание БД .
  • shared_buffer = 2048MB # - Буфер PostgreSQL, который является наиболее эффективным настраиваемым параметром для большинства операционных систем. Задается значение - в среднем 25% от ОЗУ.
  • temp_buffers = 512MB # - Объем ОЗУ выделяемый PostgreSQL для текущих временных операции. Обычно 25-50% от значения shared_buffer.
  • max_prepared_transactions = 3 # Позволяет создавать дополнительные транзакции по наиболее частым операциям
  • work_mem = 256MB # - если вам нужно выполнить сложную сортировку, увеличьте значение для получения хороших результатов. Рекомендуется 10-15% от shared_buffer.
  • maintenance_work_mem = 512MB # — это параметр памяти, используемый для задач обслуживания. Значение по умолчанию составляет 64 МБ. Установка большого значения помогает в таких задачах, как VACUUM, RESTORE, CREATE INDEX, ADD FOREIGN KEY и ALTER TABLE. Рекомендуется 25% от shared_buffer.
  • wal_buffers = 256MB # - PostgreSQL сначала записывает записи в WAL (журнал предзаписи) в буферы, а затем эти буферы сбрасываются на диск. Размер буфера по умолчанию, составляет 16 МБ. Рекомендуется 10-15% от shared_buffer.
  • effective_cache_size = 2048MB # Определяет представление планировщика об эффективном размере дискового кеша, доступном для одного запроса.
  • checkpoint_timeout = 0.3 # - используется для установки времени между контрольными точками WAL. Установка слишком низкого значения уменьшает время восстановления после сбоя, поскольку на диск записывается больше данных, но это также снижает производительность, поскольку каждая контрольная точка в конечном итоге потребляет ценные системные ресурсы. Рекомендаций нет, подбирается экспериментально, для начала можно использовать 0.25.