Есть ли способ установить привязку ЦП к процессам PostgreSQL через его файлы конфигурации? - PullRequest
0 голосов
/ 31 января 2019

Я использую PostgreSQL 9.5 с приложением Java 8 в ОС Windows (система: i5 2nd Generation).Я заметил, что когда мое приложение выполняется, существует несколько процессов / подпроцессов PostgreSQL, которые создаются / удаляются динамически.

Эти процессы PostgreSQL используют почти весь ЦП (> 95%), из-за чегопроблема возникает с другими приложениями, установленными в моей системе.

Недавно я узнал о привязке к процессору.В настоящее время я выполняю сценарий PowerShell (за пределами моего Java-приложения), который периодически проверяет и устанавливает желаемое значение соответствия процессоров для всех процессов PostgreSQL при выполнении.

Я ищу способ, при котором мне не нужно выполнять внешний скрипт (-ы) и / или требуется одноразовая настройка.

Существует ли конфигурация, поддерживаемая PostgreSQL 9.5, с помощью которой мы можем установить максимальное количество ядер ЦП, которое будет использоваться процессами PostgreSQL?

Я искал решение, но не мог найти.

1 Ответ

0 голосов
/ 31 января 2019

Невозможно установить это в конфигурации PostgreSQL.

Но вы можете запустить свой сервер PostgreSQL с cmd.exe с помощью:

start /affinity 3 C:\path\to\postgresql.exe C:\path\to\data\directory

Это позволит запускать только PostgreSQLна «первых» ядрах twp.

Ядра имеют номера 1, 2, 4, 8, 16 и т. д., и вы используете сумму ядер, для которой PostgreSQL будет работать в качестве аргумента /affinity.Например, если вы хотите, чтобы он работал только на третьем и четвертом ядре, вы должны использовать /affinity 12.

Это должно работать, поскольку в документации Microsoft написано:

Сходство процессов наследуется любым дочерним процессом или недавно созданным локальным процессом.

...