CONFIGURATION PARAMETER客户端连接默认值 / 共享库预载入
jit_provider
设置要使用的 JIT 提供程序。
JIT provider to use.
字符串 重启生效 引入 11 现存至 20 devel 0 次默认值变更
- 类型
- 字符串string
- 上下文
- 重启生效只能在服务器启动时设置,修改后需要重启
- 默认值
llvmjit- 引入版本
- 11
- 状态
- 现存
版本轨迹
相对 PostgreSQL 17 无变化。
默认值变迁
默认值自 PostgreSQL 11 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。
手册说明
这个变量是要被使用的JIT提供者库的名称(见Section 30.4.2)。默认是llvmjit。这个参数只能在服务器启动时设置。
如果这个变量被设置为一个不存在的库,JIT将不可用,但是也不会发生错误。这种特性允许在主PostgreSQL包之外单独安装JIT支持。
机制详解
jit_provider:设置要使用的 JIT 提供程序。指定的提供程序实现 PostgreSQL JIT,且必须二进制兼容;更换提供程序需要重启服务器。
jit_provider 属于 POSTMASTER 上下文:PostgreSQL 在服务器启动时读取它,重新加载配置或会话 SET 都不能使新值生效。
库发现与预加载会和已安装二进制版本、扩展控制文件、服务器或后端启动,以及模块自身 GUC 相互作用。
调优建议
按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。
-
OLTP在线事务处理
不要把更换 jit_provider 当作常规调优;软件包支持时保持 llvmjit,并通过 jit 及成本阈值控制是否执行 JIT。
-
OLAP分析与批处理
只有在代表性编译时间、执行速度、内存、软件包兼容与重启测试后才评估提供程序;提供程序选择次于 JIT 阈值。
-
小规格低配实例与开发机
保持软件包提供的实现,通常应控制是否使用 JIT 而非替换实现;提供程序缺失可能破坏启动或 JIT 执行。
常见问题
- 期待重新加载或 SET 激活 jit_provider,而它实际需要受控重启服务器。
- 指定缺失或 ABI 不兼容模块,导致连接失败或服务器无法启动。
- 把搜索或预加载路径当作无害配置,忽略它决定服务器信任哪些本地代码。
- 没有回滚计划及客户端或运维兼容测试,就全局修改 jit_provider。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。
-
PostgreSQL 20 ← 19 沿用 19
事实沿用 19
-
PostgreSQL 11 ← 10 新增此参数
PostgreSQL 11 起可用
逐版本快照
每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。
| 版本 | 默认值 | 单位 | 上下文 | 类型 | 最小值 | 最大值 | 枚举值 |
|---|---|---|---|---|---|---|---|
| 11 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 12 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 13 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 14 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 15 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 16 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 17 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 18 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 19 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
| 20 沿用 | llvmjit |
— |
重启生效 |
字符串 |
— |
— |
— |
参考资料
同类参数
| 参数 | 类型 | 上下文 | 默认值 | 版本变动 | 最近变更 |
|---|---|---|---|---|---|
| 共享库预载入 4 | |||||
jit_provider |
字符串 | 重启生效 | llvmjit |
— | |
| 设置要使用的 JIT 提供程序。 | 现存 | ||||
local_preload_libraries |
字符串 | 会话 | 空字符串 |
9.51 次 | |
| 列出每个后端可由非特权用户预加载的共享库。 | 现存 | ||||
session_preload_libraries |
字符串 | 会话(超级用户) | 空字符串 |
— | |
| 列出每个后端在会话开始时预加载的共享库。 | 现存 | ||||
shared_preload_libraries |
字符串 | 重启生效 | 空字符串 |
— | |
| 列出服务器启动时预加载的共享库。 | 现存 | ||||