prioritize

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

概览

扩展包名版本分类许可证语言
pg_prioritize1.0.4ADMINPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
5100prioritize-
相关扩展pg_proctab pg_background system_stats pgnodemx pg_wait_sampling pg_repack pg_rewrite pg_squeeze

no pg 14 on el9

版本

类型仓库版本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
PGDG 1.0.4
PGDG MISS
el9.aarch64
PGDG 1.0.4
PGDG 1.0.4
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

安装

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

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

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

pig install pg_prioritize;          # 当前活跃 PG 版本安装
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 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 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 后端进程的优先级

prioritize 扩展为 PostgreSQL 后端进程暴露了 getpriority()setpriority() 系统调用,允许你通过 SQL 对后端进程执行 renice 操作。

获取后端优先级

SELECT get_backend_priority(pg_backend_pid());

任何用户都可以查询任意后端的优先级。

设置后端优先级

SELECT set_backend_priority(pg_backend_pid(), 10);

超级用户可以设置任意后端的优先级。非特权用户只能调整同一角色的后端。

注意:优先级只能提高(更大的数值 = 更低的 OS 优先级)。只有 root 才能降低数值优先级,而 PostgreSQL 进程不应以 root 身份运行。

批量操作

-- 将当前用户所有后端的优先级提高 5
SELECT set_backend_priority(pid, get_backend_priority(pid) + 5)
  FROM pg_stat_activity
  WHERE usename = CURRENT_USER;

最后修改 2026-03-14: update extension metadata (953cbd0)