千家信息网

为什么PostgreSQL checkpointer后台进程使用这么多内存

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"为什么PostgreSQL checkpointer后台进程使用这么多内存",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"为什么Po
千家信息网最后更新 2026年11月02日为什么PostgreSQL checkpointer后台进程使用这么多内存

这篇文章主要讲解了"为什么PostgreSQL checkpointer后台进程使用这么多内存",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"为什么PostgreSQL checkpointer后台进程使用这么多内存"吧!

本节内容来源于PGer的一个问题:
Q:
为什么checkpointer后台进程使用这么多内存?

[pg12@localhost ~]$ ps -aux|grep postgrespg12      1506  0.0  1.8 753156 34704 ?        Ss   10:30   0:00 /appdb/xdb/pg12beta1/bin/postgrespg12      1507  0.0  0.0 187304  1472 ?        Ss   10:30   0:00 postgres: logger   pg12      1509  0.0 24.1 754120 452672 ?       Ss   10:30   0:04 postgres: checkpointer   pg12      1510  0.0 28.4 753292 533184 ?       Ss   10:30   0:08 postgres: background writer   pg12      1511  0.0  0.9 753260 18012 ?        Ss   10:30   0:11 postgres: walwriter   pg12      1513  0.0  0.0 189420  1448 ?        Ss   10:30   0:00 postgres: archiver   last was 00000001000000020000005Cpg12      1514  0.0  0.0 189556  1324 ?        Ss   10:30   0:00 postgres: stats collector   pg12      1515  0.0  0.1 753688  1984 ?        Ss   10:30   0:00 postgres: logical replication launcher  pg12      2281  0.0  0.0 112660   972 pts/3    S+   16:38   0:00 grep --color=auto postgres[pg12@localhost ~]$ grep 'shared' $PGDATA/postgresql.conf shared_buffers = 512MB            # min 128kB#shared_memory_type = mmap        # the default is the first optiondynamic_shared_memory_type = posix    # the default is the first option#wal_buffers = -1            # min 32kB, -1 sets based on shared_buffers#shared_preload_libraries = ''    # (change requires restart)

比如上例,共享内存设置为512MB,在2G内存的机器上,checkpointer和background writer进程占用了差不多25%的内存大小.

A:

resident" RAM of a postgres subprocess is often just be the fraction of shared_buffers it's read/written. checkpointer must necessarily read all dirty pages from s-b and write out to disk (by way of page cache), so that's why its RSS is nearly 32GB. And the recovery process is continuously writing into s-b.

原因是checkpointer和bg writer需要从shared memory中读取数据(从s-b到page cache)并刷到磁盘上,因此给人占用大量内存的假象.

感谢各位的阅读,以上就是"为什么PostgreSQL checkpointer后台进程使用这么多内存"的内容了,经过本文的学习后,相信大家对为什么PostgreSQL checkpointer后台进程使用这么多内存这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

内存 进程 后台 内容 学习 问题 差不多 假象 原因 大小 如上 就是 思路 情况 数据 文章 更多 机器 来源 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 盈实互联网科技 汇久创客互联网科技 互联网科技上市公司 时间互联网络科技 互联网科技公司的市场部门 宁波青枫互联网科技有限公司 常德市电业局互联网科技部 福建科技产业互联网发展 中国航天科技大学国际工业互联网 佛山市翊博互联网络科技有限公司 互联网科技的全部知识 互联网科技创新的路径 上海科技产业互联网平台 产业互联网科技服务公司 厦门江牛科技互联网 互联网风格科技公司名称 东营紫格互联网科技 宁波跨境商互联网科技有限公司 科技互联网行业投资研究 三亚科技创新互联网基地 科技金融是不是互联网金融 北京互联网络科技有限公司 北京禾田雨橡互联网科技 哈尔滨秒房互联网科技有限公司 互联网科技产品 互联网金融科技展 互联网科技人工智能实验室 风投北京互联网科技 互联网科技包装股份有限公司上市 互联网企业和网络科技有限公司
0