千家信息网

PostgreSQL的DB buffer问题分析

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"PostgreSQL的DB buffer问题分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年02月01日PostgreSQL的DB buffer问题分析

本篇内容介绍了"PostgreSQL的DB buffer问题分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

首先今天要说的这部分buffer 如果要用其他的数据库来理解的话,ORALCE 中有PGA 和 SGA, 今天要说的这部分就是 SGA, 数据库中共享内存。而postgresql 中这块共享内存和其他的数据库不同的地方,在于大部分数据库MYSQL 设置自己的 innodb_buffer_pool_size 一般是要设置成总内存的 60-80% , SQL SERVER 一般也会吃进大部分系统内存,并且一般不会再释放,我们可以理解,这些数据库(mysql, oracle ,sql server)都有自己的内存管理器,并且倾向性的独占。

反观postgresql 一般建议在设置share_buffer 的建议是系统总内存的25%,这与上边的三个数据库相比有点背道而驰的赶脚。所以就引出了今天的问题,到底POSTGRESQL 在内存的使用和缓存的使用中有什么"与众不同"。

select current_setting(name),* from pg_settings where name like 'share%';

postgresql 在大部分的情况中是倾向于使用OS 的缓冲来完成工作的,也就是读取的数据都是要经过OS CACHE 的,跳过system cache 大致只有WAL writes。那问题是为什么要需要buffer cache ,如果直接可以使用使用OS cache 不就可以了。

那到底为什么要有buffer cache 原因主要在于buffer cache 有数据库独有的算法,在postgresql 的 buffer cache 中可以通过近似LRU 的算法将经常被用到的数据,"粘"在buffer cache 中,增加数据库自身缓冲的利用率。

那可能又有问题提出,为什么PG 建议将buffer cache 设置到总体的内存的25%,而不是更大,更大不是更好吗? 实际上根据 PG9.X PG 10 的相关书籍中提到的,如果这样可能适得其反,书中提出的观点是,PG 在操作时,有一部分是通过系统的CACHE 会更直接。

所以这就引出另一个问题,我们怎么设置共享内存(LINUX系统中的)让系统更好的为数据库服务,下面是一个脚本,可以得到设置LINUX 共享内存的大小值

./shmsetup >> /etc/sysctl.conf

这位同学又问了另一个问题,就是既然PG 有 buffer cache 和 OS cache 那这样的设计会浪费内存的空间。

这里想说的是不会,大家可以想一下,数据库的系统buffer cache 是可以黏住经常访问的数据,而系统的的缓冲是没有这样的功能的,也就是系统的缓冲和数据库的BUFFER CACHE 之间存在相同的数据的可能性是比较低,一个数据会经常被访问才能放到缓冲中,而如果一个经常被访问的数据放到数据库的 BUFFER 中,就不会再访问系统的CACHE ,所以系统就会清理掉他,系统的缓冲和数据库的缓冲能存在一样的数据的可能性就比较低。

"PostgreSQL的DB buffer问题分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 数据库 内存 系统 问题 缓冲 大部分 建议 分析 也就是 倾向 内容 可能性 实际 就是 情况 更多 知识 算法 要说 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库基础中的关系是 广东粤牛互联网科技有限公司 保定网络技术服务有限责任公司 勒索病毒中国网络安全 暗黑2亚洲服务器在哪儿 达梦数据库导出长文本 镇江私有服务器工厂 国家 统筹协调网络安全工作 安全播出网络安全培训 如何查看服务器raid 如何展现公司的软件开发能力 网络安全算硬件 怎样申请第三方软件开发 中国有互联网终端服务器吗 网络安全小笑话 怎么操作数据库 戴尔服务器T110恢复出厂设置 守护网络安全宣讲课件 网络安全法27条怎么处罚 闵行区技术软件开发费用 金蝶选择不到数据库文件路径 日本防卫产业网络安全对策 南山区质量网络技术开发服务标准 昌平区口碑好的软件开发推荐咨询 自动泊车软件开发供应商 计算机网络技术相关岗位 山东德州网络安全宣传 便宜服务器出租 青浦区什么是软件开发服务保障 取指定符合后的数据库
0