Обычно я запускаю Postgres с pg_ctl -D /db start
Как я могу сделать так, чтобы он запускался под "хорошим", чтобы он работал с более низким приоритетом?
Вы должны "улучшить" все серверные процессы, а не только почтмейстера: http://wiki.postgresql.org/wiki/Priorities
В systemd вам может понадобиться нечто подобное - обратите внимание, что здесь (Debian / Ubuntu) версия движка и имя кластера могут использоваться для управления определенной службой, но это может не относиться к вашему дистрибутиву:
# systemctl edit postgresql@10-main
[Service]
Nice=15
IOSchedulingClass=2
IOSchedulingPriority=7
# service postgresql@10-main restart
Я включил планирование ввода-вывода, так как вы также можете это контролировать, но, конечно, вы можете не указывать это. Он может быть установлен автоматически в зависимости от уровня nice, если вы не устанавливаете его явно. Меньший - более высокий приоритет, 0-7 в пределах класса 2 (максимальные усилия). Класс 3 простаивает. Класс 1 - это режим реального времени, вы, вероятно, этого не хотите.
nice pg_ctl -D /db start
Используйте команду nice, чтобы запустить программу с измененным приоритетом / удобством планирования. По крайней мере, от -20 (наиболее благоприятное расписание) до 19 (наименее благоприятное). Поведение по умолчанию - повысить удобство на 10.
Удобство не следует путать с приоритетом планирования, который позволяет приложениям определять порядок, в котором запланировано выполнение потоков. В отличие от приоритета, любезность - это просто совет для планировщика, который планировщик может игнорировать.