跳转到主要内容

prioritize

获取和设置 PostgreSQL 后端的优先级

概览

扩展包名版本分类许可证语言
pg_prioritize1.0.4ADMINPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
5100prioritize否是否是否是-

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG1.0.41817161514pg_prioritize-
RPMPGDG1.0.41817161514pg_prioritize_$v-
DEBPGDG1.0.41817161514postgresql-$v-prioritize-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 1.0.4
PGDG 1.0.4
el8.aarch64
PGDG 1.0.4
PGDG 1.0.4
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
d12.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
d13.x86_64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
d13.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
u22.x86_64
u22.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
u24.x86_64
u24.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
u26.x86_64
u26.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4

安装

您可以直接安装 pg_prioritize 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:

pig repo add pgdg -u          # 添加 PGDG 仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pg_prioritize;          # 当前活跃 PG 版本安装
pig
pig ext install -y pg_prioritize -v 18  # PG 18
pig ext install -y pg_prioritize -v 17  # PG 17
pig ext install -y pg_prioritize -v 16  # PG 16
pig ext install -y pg_prioritize -v 15  # PG 15
pig ext install -y pg_prioritize -v 14  # PG 14
dnf
dnf install -y pg_prioritize_18       # PG 18
dnf install -y pg_prioritize_17       # PG 17
dnf install -y pg_prioritize_16       # PG 16
dnf install -y pg_prioritize_15       # PG 15
dnf install -y pg_prioritize_14       # PG 14
apt
apt install -y postgresql-18-prioritize   # PG 18
apt install -y postgresql-17-prioritize   # PG 17
apt install -y postgresql-16-prioritize   # PG 16
apt install -y postgresql-15-prioritize   # PG 15
apt install -y postgresql-14-prioritize   # PG 14

创建扩展:

CREATE EXTENSION prioritize;

用法

来源:

prioritize 提供 PostgreSQL 后端进程的操作系统优先级控制。它适合降低指定会话的调度优先级,不是 PostgreSQL 查询调度器。

查看和调整后端

CREATE EXTENSION prioritize;
SELECT get_backend_priority(pg_backend_pid());
SELECT set_backend_priority(pg_backend_pid(), 10);

任何用户都可以查询后端优先级。PostgreSQL 超级用户可以请求调整任意后端;其他用户只能调整使用同一数据库角色的后端。

调整同角色会话

SELECT set_backend_priority(pid, get_backend_priority(pid) + 5)
FROM pg_stat_activity
WHERE usename = CURRENT_USER;

增大 nice 数值会降低操作系统调度优先级。因此,这个例子降低这些后端的优先级,不会使它们执行得更快。

权限和限制

安装需要超级用户,无需预加载或重启。操作系统权限仍然生效:普通 PostgreSQL 进程通常不能通过降低 nice 数值来提高优先级。数据库超级用户权限不等于 root 权限。批量调整前,应检查平台调度策略和进程身份。控制文件使用 SQL 版本 1.0;发行版安装包版本 1.0.4 与之不同。

这个页面对您有帮助吗?