【DB吐槽大会】第6期 - PG Double Cache

简介: 大家好,这里是DB吐槽大会,第6期 - PG Double Cache

背景


1、产品的问题点

  • OS page cache, buffer pool 双重缓存, 存在一定的内存浪费.

2、问题点背后涉及的技术原理

  • PG 的数据的写操作采用buffer IO接口, 在OS层会产生缓存, 最后由IO子系统合并写入块设备. 读操作与之类似.

3、这个问题将影响哪些行业以及业务场景

  • 所有场景

4、会导致什么问题?

  • 内存浪费.
  • 如果OS层的bg write调度没有配置得当会导致IO hang或者大型IO等问题.
  • 无法发挥最大的IO设备带宽潜能.
  • 好处也有一丢丢: OS层的IO合并可以减少总的IO次数.
  • OS有一层cache, 当数据库重启时可以缓冲一下, 不会直接全部打到IO块设备上.
  • 当使用IO延迟较高的块设备时, buffer IO的性能影响较小(buffer write场景).

5、业务上应该如何避免这个坑

  • 基本无解.
  • 使用大一点点的shared buffer并且使用huge page配置.
  • 使用pgfincore插件, 将fd改成adviceFlag = POSIX_FADV_DONTNEED, 会尽快淘汰对应page, 但是并不代表不过os cache层.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 无法避免

7、数据库未来产品迭代如何修复这个坑

  • 改造内核, 使用计算存储分离架构, 类似PolarDB, 使用DIO解决



相关文章
|
存储 运维 数据安全/隐私保护
企业级备份软件Veritas NetBackup(NBU) 8.1.1服务端的安装部署
企业级备份软件Veritas NetBackup(NBU) 8.1.1服务端的安装部署
3632 0
企业级备份软件Veritas NetBackup(NBU) 8.1.1服务端的安装部署
|
SQL
记一次不常见到主从延迟问题
Slave_SQL_Running_State: Waiting for dependent transaction to commit 导致的主从延迟
8689 1
|
6月前
|
存储 安全 测试技术
应用系统规划
本大纲系统梳理应用系统规划设计全流程,涵盖基础概念(业务/过程/数据/技术四类抽象)、架构设计(分层体系、主流架构类型)、核心内容(接口/数据/构件定义)、生命周期模型(瀑布/V/迭代)、体系结构方法及企业架构(TOGAF/SOA/敏捷交付)等关键模块,助力构建高内聚、低耦合、可复用的高质量应用系统。
534 0
|
10月前
|
存储 自然语言处理 监控
10 万文档 RAG 落地实战:从 Demo 到生产,我踩过的所有坑
本文分享10万级文档RAG系统从Demo到生产的实战经验,剖析检索慢、召回率低、部署复杂三大痛点,涵盖文档切分、Embedding选型、向量库优化、重排序与生成约束等关键步骤,并提供可落地的工程方案与评估方法,助力构建高效、稳定的企业级RAG系统。
|
存储 机器学习/深度学习 大数据
终于有人把湖仓一体讲清楚了
湖仓一体是将数据仓库与数据湖融合的新一代数据架构,兼具结构化分析与多样化数据处理能力,实现统一存储、高效查询与深度分析,助力企业提升数据管理效率与业务决策水平。
|
监控 关系型数据库 MySQL
innodb_buffer_pool_instances 如何根据cpu和内存进行配置
`innodb_buffer_pool_instances` 是用于配置 InnoDB 缓冲池实例数的参数。每个实例都管理缓冲池的一部分,这有助于提高并发性能。通常,你可以根据系统的 CPU 和内存来调整这个参数,以获得更好的性能。 以下是一些建议和步骤,帮助你根据 CPU 和内存进行 `innodb_buffer_pool_instances` 的配置: 1. **了解系统资源:** 首先,了解系统的硬件资源,特别是内存和CPU。检查系统上可用的物理内存和 CPU 核心数量。 2. **考虑每个实例的大小:** 在配置 `innodb_buffer_pool_instances` 时,
924 0
|
存储 Oracle 关系型数据库
【数据库-DB2】深入了解DB2 reorg
本文介绍了DB2数据库中reorg操作的重要性,旨在通过重组表数据来消除数据碎片、压缩信息并提高数据访问速度。reorg操作能够根据索引关键字重新排序数据,减少查询I/O次数,提升查询性能。文章详细讲解了reorg的操作步骤、适用场景及注意事项,强调了在执行reorg前后更新统计信息的必要性。
1380 2
|
监控 Java 测试技术
如何解读 jstat 工具输出的 G1 垃圾回收器性能数据?
如何解读 jstat 工具输出的 G1 垃圾回收器性能数据?
|
人工智能 自然语言处理 Java
30分钟速成:IntelliJ IDEA 2024下载安装与多语言开发环境配置手册
IntelliJ IDEA是Java/Kotlin开发领域的旗舰级IDE,最新版本实现了AI全栈辅助、量子计算插件和多语言互操作三大技术突破。AI辅助提升代码生成与性能优化准确率40%,量子计算插件支持1024量子位模拟,多语言混合调试性能提升300%。系统要求包括i5以上CPU、8GB内存及Windows 7+等。安装流程涵盖获取Ultimate版、配置启动器及性能优化设置。核心功能包括AI编码助手和多语言开发环境配置。提供量子算法开发和AI代码审查实战案例,并附故障排查指南和学习资源。

热门文章

最新文章