PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

19.4. 资源消耗 #

管理数据库引擎对宿主机 CPU 与内存资源的分配与消耗:

shared_buffers(integer,带内存单位)

数据库服务器用于缓存数据页面(数据表和索引页)的共享内存缓冲区容量。在生产服务器上,推荐的初始配置通常为宿主机物理总内存的 25% 左右,必须重启生效。

huge_pages(enum)

控制是否在 Linux 宿主机上使用大页内存(Huge Pages)来分配共享内存池,从而大幅缩减 CPU 的 TLB 转换表开销,提升大内存访问性能。

work_mem(integer,带内存单位)

每个内部排序操作(如 ORDER BY、DISTINCT)或哈希连接操作在溢出到磁盘临时文件之前,被允许使用的最大单次操作内存上限。需要牢记这是针对每个算子而非每个会话分配的,一个复杂查询可能同时占用数个 work_mem。

maintenance_work_mem(integer,带内存单位)

维护性日常操作(如 VACUUM、CREATE INDEX 与 ALTER TABLE ADD FOREIGN KEY)所能使用的最大内存配额。通常可配置为数百兆至数吉字节。

max_worker_processes(integer)

整个数据库集群在任一时刻能够支持启动的后台工作进程总数上限(包括并行查询 worker 与逻辑复制 worker)。