如何在“nice”环境下运行 Postgres?

如何在“nice”环境下运行 Postgres?

我通常使用以下命令启动 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 只是对调度程序的建议,调度程序可以随意忽略。

相关内容