qos
PostgreSQL QoS 资源治理扩展(会话与查询限流/隔离)
概览
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5240 | qos | 否 | 是 | 是 | 是 | 否 | 否 | - |
| 相关扩展 | plan_filter pg_kpart pg_readonly prioritize block_copy_command safeupdate pg_command_fw pg_strict pg_hint_plan |
|---|
requires shared_preload_libraries = ‘qos’; official support PG15+
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | pg_qos | - |
| RPM | PIGSTY | 1.0.0 | 1817161514 | pg_qos_$v | - |
| DEB | PIGSTY | 1.0.0 | 1817161514 | postgresql-$v-qos | - |
构建
您可以使用 pig build 命令构建 pg_qos 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 pg_qos 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
预加载配置:
BASH
创建扩展:
SQL
用法
qos 扩展为 PostgreSQL 提供服务质量(QoS)资源治理,允许管理员对每个角色和每个数据库设置内存使用、CPU 核心数和并发事务/语句的限制。
配置参数
| 参数 | 类型 | 描述 |
|---|---|---|
qos.work_mem_limit | 字节 | 每个会话的最大有效 work_mem |
qos.cpu_core_limit | 整数 | 会话可用的最大 CPU 核心数 |
qos.max_concurrent_tx | 整数 | 最大并发事务数 |
qos.max_concurrent_select | 整数 | 最大并发 SELECT 语句数 |
qos.max_concurrent_update | 整数 | 最大并发 UPDATE 语句数 |
qos.max_concurrent_delete | 整数 | 最大并发 DELETE 语句数 |
qos.max_concurrent_insert | 整数 | 最大并发 INSERT 语句数 |
角色级限制
SQL
数据库级限制
SQL
角色+数据库组合限制
SQL
执行行为
- 工作内存:拦截
SET work_mem并拒绝超过配置限制的值 - CPU 限制(仅 Linux):通过 CPU 亲和性将后端绑定到 N 个 CPU 核心;在非 Linux 平台上改为限制并行工作进程
- 并发:执行器钩子按类型跟踪活动事务/语句;违规将阻止执行
可观测性
SQL
角色级和数据库级设置中最严格的组合生效。需要 shared_preload_libraries = 'qos' 和 PostgreSQL 15+。