PostgreSQL 优化性能并降低内存管理开销
admin
2023-08-04 11:40:45
0

Postgres 的 David Rowley 进行了一项相当重大的更改,以提高该数据库服务器的性能并减少内存管理的开销。该更改将块头大小的大小从 16 个字节减少到 8 个字节,反过来,这项工作应该会导致更有效的内存使用。

此处所做的更改将我们所有 3 种内存上下文类型的块头大小减少到仅 8 个字节。对于中小型分配,这显着增加了我们可以在给定块上放置的块数,从而更有效地使用内存。

此外,此提交彻底改变了指向 palloc 内存的指针必须直接以指向拥有内存上下文的指针作为前缀的规则,相反,我们现在坚持它们直接以 8 字节值作为前缀,其中最不重要的 3 -bits 设置为一个值,以指示指针属于哪种类型的内存上下文。使用这 3 位作为索引(称为 MemoryContextMethodID)到存储每种内存上下文类型的方法的新数组,我们现在能够将给函数的指针传递给函数,例如 pfree() 和 repalloc()特定于该上下文实现,以允许他们设计自己的方法来查找拥有给定分配的内存块的内存上下文。

更多关于内存开销的 PostgreSQL 性能优化的详细信息可以通过这个提交找到。

早先关于减少 PostgreSQL 内存开销的讨论看到,Rowley 在 Ryzen Threadripper 工作站上的只读简单工作负载的吞吐量性能提高了 17%。

image.php_-82image.php_-82

当它在稳定的 PostgreSQL 版本中首次亮相时,看看这种内存开销减少如何在现实世界中发挥作用肯定会很有趣。但是由于 PostgreSQL 15 已经在今年晚些时候发布之前进行了分支,因此预计这种变化要到 PostgreSQL 16 才能实现。

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
iPhone 屏幕上有亮绿色斑... iPhone 是市场上最稳定的智能手机之一,这主要归功于专为它们设计的 iOS 操作系统。然而,他们...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
QQ浏览器怎么制作简历 QQ浏览器是腾讯公司开发的一款极速浏览器,支持电脑,安卓,苹果等多种终端;更快的浏览体验,更安全的浏...
Apple Watch Ult... 所有运行 watchOS 7 或更高版本的 Apple Watch 型号都包含一项名为“优化电池充电...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
统信UOS每次开机后不直接进入... 统信UOS每次开机后不直接进入系统而是进入到recovery模式 按方向上键选择UOS 20 SP1...