我通常使用以下命令启动 Postgrespg_ctl -D /db start
我怎样才能让它在“nice”下启动,以便它以较低的优先级运行?
答案1
你必须“nice”所有的后端进程,而不仅仅是邮政局长: http://wiki.postgresql.org/wiki/Priorities
答案2
在 systemd 下,您可能需要更多类似的东西 - 请注意,这里(Debian / Ubuntu)引擎版本和集群名称可用于控制特定服务,但对于您的发行版可能并非如此:
# systemctl edit postgresql@10-main
[Service]
Nice=15
IOSchedulingClass=2
IOSchedulingPriority=7
# service postgresql@10-main restart
我已将 I/O 调度包括在内,因为您可能也希望控制这一点,但当然您可以忽略它。如果您未明确设置,则可能会根据 nice 级别自动设置。较低的优先级较高,在 2 类(尽力而为)中为 0-7。3 类是空闲的。1 类是实时的,您可能不想要它。
答案3
nice pg_ctl -D /db start
使用 nice 命令运行修改了调度优先级/优先级的程序。优先级范围至少从 -20(导致最有利的调度)到 19(最不利的调度)。默认行为是将优先级增加 10。
请勿将 niceness 与调度优先级相混淆,后者允许应用程序确定线程的调度运行顺序。与优先级不同,niceness 只是对调度程序的建议,调度程序可以随意忽略。