选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 资源消耗

CONFIGURATION PARAMETER资源消耗 / 内核资源

max_files_per_process

设置每个服务器进程可同时打开的最大文件数。

Sets the maximum number of files each server process is allowed to open simultaneously.

整数 重启生效 引入 9.0(基线) 现存至 20 devel 0 次默认值变更

类型
整数integer
上下文
重启生效只能在服务器启动时设置,修改后需要重启
默认值
1000
取值范围
64 – 2147483647
引入版本
9.0(基线)
状态
现存

PostgreSQL 18 手册 官方文档

版本轨迹

相对 PostgreSQL 17 仅简述或分类有更新。

默认值变迁

1000 9.0 – 20

默认值自 PostgreSQL 9.0 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.4 资源消耗 本站手册 官方原文

本版译文与 PostgreSQL 14 完全一致,下面就是同一段文字。

设置每个服务器子进程允许同时打开的最大文件数。默认值是一千个文件。

如果内核强制实施了安全的每进程上限,你通常不必担心这个设置。但在某些平台上 (尤其是大多数 BSD 系统),如果许多进程都尝试打开大量文件,内核可能允许单个进程打开的文件数 远超系统在整体上真正能够支持的数量。如果你看到打开的文件过多之类的失败, 可以尝试减小这个设置。这个参数只能在服务器启动时设置。

机制详解

max_files_per_process 是 PostgreSQL 启动时对单个服务器子进程可保持打开文件数的预期,不含从 postmaster 继承且已打开的文件。

它不会提高内核文件描述符限制。PostgreSQL 用它管理资源;在会跨进程过度承诺描述符的内核上,较低值可避免系统级耗尽。

相关容量是每进程值乘以后端与 worker 数量。出现“Too many open files”还可能需要修复 OS 服务限制、连接数、分区扇出或扩展行为。其 postmaster 上下文在服务器启动时固定取值,修改后必须重启。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    先把 PostgreSQL 取值与服务真实每进程 nofile 限制及已观测描述符用量比较。提高该 GUC 不会提高内核限制;会跨大量进程过度承诺描述符的系统上,降低 PostgreSQL 值反而更安全。

  • OLAP分析与批处理

    大量分区或索引扇出会增加单后端描述符,但应按实测峰值打开数与后端/worker 总量规划。修改 PostgreSQL 上限前先解决泄漏与 OS 服务限制。

  • 小规格低配实例与开发机

    除非描述符证据表明需要修改,否则保留默认。即使每个进程都低于个体上限,小主机仍可能耗尽系统级文件表。

常见问题

  • 期待该 GUC 提高 ulimit 或服务管理器的 nofile 限制。
  • 只规划每进程数量,忽略连接与 worker 汇总值。
  • 通过提高取值掩盖描述符泄漏或过高分区/索引扇出。
  • 忘记从 postmaster 继承且已打开的文件不计入本数值。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 18 ← 17 仅描述更新

    简述 Sets the maximum number of simultaneously open files for each server process. Sets the maximum number of files each server process is allowed to open simultaneously.

  3. PostgreSQL 13 ← 12 属性变更

    最小值 25 64

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
9.0 1000 重启生效 整数 25 2147483647
9.1 1000 重启生效 整数 25 2147483647
9.2 1000 重启生效 整数 25 2147483647
9.3 1000 重启生效 整数 25 2147483647
9.4 1000 重启生效 整数 25 2147483647
9.5 1000 重启生效 整数 25 2147483647
9.6 1000 重启生效 整数 25 2147483647
10 1000 重启生效 整数 25 2147483647
11 1000 重启生效 整数 25 2147483647
12 1000 重启生效 整数 25 2147483647
13 1000 重启生效 整数 64 2147483647
14 1000 重启生效 整数 64 2147483647
15 1000 重启生效 整数 64 2147483647
16 1000 重启生效 整数 64 2147483647
17 1000 重启生效 整数 64 2147483647
18 1000 重启生效 整数 64 2147483647
19 1000 重启生效 整数 64 2147483647
20 沿用 1000 重启生效 整数 64 2147483647

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Resource Usage 资源消耗 1 个
内核资源 1
max_files_per_process 整数 重启生效 1000 131 次
设置每个服务器进程可同时打开的最大文件数。 现存