Bingdada 기술 블로그Bingdada 기술 블로그
홈블로그SEOGEOAEOAI도구소개
로그인회원가입
Logo

Bingdada 기술 블로그

SEO, GEO 및 미래 AI 트렌드에 초점을 맞춘 기술 블로그.

빠른 링크

  • 홈
  • 블로그 글
  • 소개

연락처

  • 398848662@qq.com

최신 SEO·GEO 정보를 받아볼래 뉴스레터를 구독하세요.

© 2024 Bingdada 技术博客. All rights reserved.

이 글은 간체 중국어입니다. 한국어(으)로 번역하려면 클릭하세요.
홈블로그AI人工智能扩展PostgreSQL支撑8亿ChatGPT用户:OpenAI的工程实践与深度优化
扩展PostgreSQL支撑8亿ChatGPT用户:OpenAI的工程实践与深度优化
AI人工智能

扩展PostgreSQL支撑8亿ChatGPT用户:OpenAI的工程实践与深度优化

bingdadabingdada
8월 2, 2026137회 읽음약 13분 분량
post.quickAnswer

OpenAI工程团队详细解析如何将PostgreSQL扩展至支撑8亿ChatGPT用户,每秒处理数百万次查询。文章深入探讨了单主架构、MVCC优化、查询调优、缓存策略、自动清理等关键技术,并总结了大规模数据库扩展的实战经验。

post.keyTakeaways
  • 引言:当PostgreSQL遇上全球8亿用户
  • 初代架构的裂缝
  • 扩展PostgreSQL至百万级QPS
  • 减少主实例负载
  • 查询优化
목차

목차

  • 引言:当PostgreSQL遇上全球8亿用户
  • 初代架构的裂缝
  • 扩展PostgreSQL至百万级QPS
  • 减少主实例负载
  • 查询优化
  • 只读副本管理
  • 自动清理调优
  • 缓存策略优化
  • 监控与告警体系
  • 关键经验总结
  • 未来展望
  • 结语
  • 相关阅读
  • 关于 Bingdada

引言:当PostgreSQL遇上全球8亿用户

在人工智能浪潮席卷全球的今天,OpenAI的ChatGPT和API服务已成为数亿用户日常依赖的工具。而在这背后,一个看似“传统”的数据库系统——PostgreSQL,正默默支撑着每分钟数百万次的查询请求。本文由OpenAI技术团队成员Bohan Zhang撰写,深入解读了团队如何将PostgreSQL扩展至支撑8亿ChatGPT用户规模,并分享了关键工程优化经验。 多年来,PostgreSQL一直是ChatGPT和OpenAI API等核心产品的关键底层数据系统。随着用户基数快速增长,数据库负载在过去一年内增长了10倍以上,且仍在快速攀升。在优化生产基础设施的过程中,OpenAI团队发现了一个重要洞察:PostgreSQL可以扩展至可靠支持远超此前业界认知的读密集型工作负载。该系统最初由加州大学伯克利分校的科学家团队创建,如今已能通过单个Azure PostgreSQL灵活服务器主实例和近50个跨区域只读副本,支撑全球海量流量。

初代架构的裂缝

ChatGPT发布后,流量以前所未有的速度增长。为支撑这一增长,团队在应用层和PostgreSQL数据库层快速实施了广泛优化:纵向扩展(增加实例规格)和横向扩展(增加只读副本)。这一架构长期运行良好,并随着持续改进,为未来增长提供了充足空间。 单主架构能满足OpenAI规模的需求,这听起来或许令人惊讶。但实际落地并不简单。团队曾多次遭遇由PostgreSQL过载引发的服务事件(SEV),且这些事件往往遵循相似模式:上游问题导致数据库负载突然飙升——例如缓存层故障引发广泛缓存未命中、大量昂贵多表连接查询耗尽CPU、或新功能发布导致的写入风暴。随着资源利用率攀升,查询延迟上升,请求开始超时。重试机制进一步放大负载,形成恶性循环,可能导致整个ChatGPT和API服务降级。 尽管PostgreSQL在读密集型工作负载上扩展良好,但在高写入流量期间仍面临挑战。这主要归因于PostgreSQL的多版本并发控制(MVCC)实现,这使得它处理写密集型工作负载效率较低。例如,当查询更新一个元组甚至单个字段时,整个行都会被复制以创建新版本。在高写入负载下,这会导致显著的写放大。同时,由于查询必须扫描多个元组版本(死元组)以检索最新版本,读放大也随之增加。MVCC还带来了表和索引膨胀、索引维护开销增加以及复杂的自动清理(autovacuum)调优等额外挑战。(关于这些问题的深入探讨,可参考作者与卡内基梅隆大学Andy Pavlo教授合著的博客文章《The Part of PostgreSQL We Hate the Most》,该文已被PostgreSQL维基百科页面引用。)

扩展PostgreSQL至百万级QPS

为缓解这些限制并降低写入压力,团队已迁移并持续将可分片(即可水平分区的)写密集型工作负载迁移至Azure Cosmos DB等分片系统,并优化应用逻辑以减少不必要的写入。同时,团队不再允许在当前PostgreSQL部署中添加新表,新工作负载默认使用分片系统。 即使基础设施不断演进,PostgreSQL仍保持未分片状态,所有写入均由单个主实例处理。主要原因是分片现有应用工作负载将极为复杂且耗时,需要修改数百个应用端点,可能耗时数月甚至数年。由于工作负载主要为读密集型,且团队已实施广泛优化,当前架构仍为支持持续流量增长提供了充足空间。虽然不排除未来对PostgreSQL进行分片,但鉴于当前和未来增长有足够空间,这并非近期优先事项。 在后续部分,我们将深入探讨团队面临的挑战以及为解决这些问题并防止未来中断而实施的广泛优化,将PostgreSQL推向极限并扩展至每秒数百万次查询(QPS)。

减少主实例负载

挑战:单主架构只有一个写入者,无法扩展写入能力。严重的写入峰值可能迅速使主实例过载,影响ChatGPT和API等服务。 解决方案:团队尽可能减少主实例的负载——包括读和写——以确保其有足够容量处理写入峰值。读流量尽量卸载到副本上。但某些读查询必须保留在主实例上,因为它们是写入事务的一部分。对于这些查询,团队专注于确保其高效且避免慢查询。对于写流量,已将可分片的写密集型工作负载迁移至Azure Cosmos DB等分片系统。较难分片但仍产生高写入量的工作负载迁移时间较长,该过程仍在进行中。团队还积极优化应用以减少写入负载,例如修复导致冗余写入的应用错误,并在适当情况下引入延迟写入以平滑流量峰值。此外,在回填表字段时,严格执行速率限制以防止过度写入压力。

查询优化

挑战:团队识别出PostgreSQL中若干昂贵查询。过去,这些查询的突然流量激增会消耗大量CPU,拖慢ChatGPT和API请求。 解决方案:团队采取多管齐下的策略。首先,通过慢查询日志和性能监控工具,系统性地识别出最耗资源的查询模式。针对每个高成本查询,团队进行了深度分析,包括执行计划、索引使用情况和数据分布。优化措施包括:添加缺失的索引、重写低效的SQL(例如将子查询转换为JOIN、避免SELECT *)、使用物化视图缓存复杂聚合结果、以及调整PostgreSQL配置参数(如work_mem、shared_buffers)以更好地匹配工作负载。对于某些无法优化的查询,团队通过应用层缓存(如Redis)或查询结果缓存来减少数据库命中次数。同时,团队建立了查询性能基线,并部署自动化告警,以便在查询延迟或资源消耗超过阈值时及时介入。

只读副本管理

挑战:随着只读副本数量增加到近50个,管理这些副本的同步、延迟和故障转移变得复杂。副本延迟可能导致用户看到过时数据,而副本故障则会影响读服务的可用性。 解决方案:团队采用Azure PostgreSQL灵活服务器提供的托管副本功能,并辅以自定义监控和自动化脚本。关键措施包括:

  • 延迟监控:实时监控每个副本的复制延迟(以字节和时间为单位),当延迟超过阈值时触发告警并自动将流量重定向到健康副本。
  • 负载均衡:在应用层实现智能的读/写分离路由。写入请求始终指向主实例,而读请求根据副本的健康状况、延迟和当前负载进行分发。使用一致性哈希确保同一用户的读取请求尽量路由到同一副本,以减少数据不一致的感知。
  • 故障转移:当主实例发生故障时,自动化流程会提升一个副本为新的主实例,并更新DNS记录。团队定期进行故障转移演练,确保流程可靠。
  • 副本预热:新添加的副本需要时间同步数据。团队通过逐步增加流量到新副本,而不是立即全量接入,以避免“惊群效应”和性能抖动。

自动清理调优

挑战:在高写入负载下,MVCC产生的死元组会迅速累积。如果自动清理进程无法及时回收这些死元组,会导致表膨胀、索引效率下降,甚至引发事务ID回卷危机。 解决方案:团队对自动清理进行了精细调优。首先,根据每个表的写入频率和大小,设置不同的autovacuum_vacuum_scale_factor和autovacuum_vacuum_threshold参数,确保活跃写入的表得到更频繁的清理。其次,调整autovacuum_work_mem以加速清理过程中的索引扫描。对于某些超大表,团队采用分区表策略,将数据分散到多个物理分区中,每个分区可以独立进行清理,减少单次清理的负担。此外,团队开发了内部工具来监控死元组比例和表膨胀率,并在接近危险阈值时触发告警或手动干预。对于极端情况,团队会安排维护窗口执行VACUUM FULL或pg_repack来回收物理空间。

缓存策略优化

挑战:缓存层(如Redis或应用内缓存)的故障曾多次引发数据库负载尖峰。当缓存失效时,大量请求直接穿透到数据库,导致查询延迟飙升和连接池耗尽。 解决方案:团队实施了多层缓存策略。第一层是应用内本地缓存(如Caffeine),用于缓存频繁访问且变化不频繁的数据(如用户会话、配置信息)。第二层是分布式缓存(Redis集群),用于缓存数据库查询结果。关键优化包括:

  • 缓存预热:在服务启动或缓存故障恢复后,逐步预热热点数据,而不是一次性加载所有数据。
  • 缓存穿透防护:对于数据库中不存在的数据,也在缓存中设置一个空值(但设置较短的TTL),防止恶意请求或逻辑错误导致数据库被频繁查询。
  • 缓存雪崩防护:为缓存设置不同的过期时间,并加入随机偏移量,避免大量缓存同时过期。
  • 熔断与降级:当数据库负载超过安全阈值时,熔断器会暂时拒绝非关键查询,优先保障核心功能的可用性。

监控与告警体系

挑战:在数百万QPS的规模下,任何微小异常都可能迅速放大为服务中断。传统的监控指标(如CPU、内存)不足以捕捉复杂的性能问题。 解决方案:团队构建了全面的监控与可观测性体系。除了基础指标,还重点监控以下定制化指标:

  • 查询性能:P50、P95、P99查询延迟,按查询类型和来源应用分类。
  • 连接池状态:活跃连接数、等待连接数、连接创建速率。
  • 复制延迟:每个副本的延迟时间和字节数。
  • 死元组比例:每个表的死元组与活元组比率。
  • 缓存命中率:应用缓存和数据库缓存(shared_buffers)的命中率。
  • 慢查询日志:自动捕获并分析执行时间超过阈值的查询。 告警策略采用多级阈值和动态基线。例如,当P99延迟超过基线2倍时触发警告,超过5倍时触发紧急告警。团队还建立了告警疲劳抑制机制,避免重复告警淹没工程师。

关键经验总结

通过上述优化,OpenAI成功将PostgreSQL扩展至支撑8亿用户,每秒处理数百万次查询。以下是团队总结的关键经验: 1. 单主架构仍可扩展:对于读密集型工作负载,精心优化的单主PostgreSQL架构可以支撑惊人的规模。关键在于将写入负载最小化,并将读流量高效卸载到副本。

  1. 优化是持续的过程:没有任何一次优化能一劳永逸。随着业务发展和数据分布变化,查询模式和性能瓶颈会不断演变。团队需要建立持续的性能评估和优化循环。
  2. 自动化是规模化的基础:手动调优和故障处理在百万级QPS下不可行。自动化监控、告警、故障转移和清理是保持系统稳定的关键。
  3. 理解数据库内部机制:深入理解PostgreSQL的MVCC、清理、锁管理等内部机制,有助于做出更明智的优化决策。盲目调整配置参数可能适得其反。
  4. 缓存是数据库最好的朋友:合理使用多级缓存可以显著降低数据库负载。但缓存策略需要精心设计,避免引入一致性和雪崩问题。
  5. 分片不是唯一出路:在决定分片之前,先评估是否可以通过优化应用逻辑、调整索引、升级硬件等方式解决问题。分片带来的复杂度往往被低估。
  6. 团队协作至关重要:数据库优化需要数据库管理员、后端工程师、SRE和产品团队的紧密合作。建立清晰的沟通渠道和职责划分。

未来展望

尽管当前架构运行良好,OpenAI团队仍在持续探索改进方向。未来可能的工作包括:

  • 进一步减少主实例写入负载:将更多写密集型工作负载迁移至专门的分片系统。
  • 探索PostgreSQL新特性:如逻辑复制、并行查询、分区表增强等,以进一步提升性能和可管理性。
  • 引入AI辅助调优:利用机器学习模型自动推荐索引、调整配置参数和预测负载峰值。
  • 硬件升级:采用更快的存储(如NVMe SSD)和更多内存,减少I/O瓶颈。

结语

PostgreSQL作为一款开源数据库,在OpenAI的工程团队手中展现了惊人的扩展潜力。通过深入理解其内部机制、持续优化应用和数据库配置、构建自动化运维体系,PostgreSQL成功支撑了全球8亿用户的AI服务。这一案例证明了:在合适的场景下,传统关系型数据库依然能够胜任现代互联网规模的挑战。对于正在面临数据库扩展难题的团队,OpenAI的经验提供了宝贵的参考——在追求新技术之前,先充分挖掘现有工具的能力。 本文内容基于OpenAI技术博客原文,由专业SEO/GEO编辑翻译、改写并优化,旨在为中文读者提供深度技术洞察。


相关阅读

  • OpenAI 揭露:与中国关联的虚假信息行动如何操纵美国 AI 政策辩论

  • OpenAI 宣布收购 Ona:为 Codex 提供持久、安全的云端代理执行环境

  • 从模型到智能体:OpenAI 为 Responses API 配备计算机环境

关于 Bingdada

Bingdada 是一个专注 SEO、GEO(生成式引擎优化)与 AEO(答案引擎优化)的内容平台,由资深内容编辑、SEO 技术工程师与 AI 研究专家组成的团队持续运营。我们追踪搜索引擎与生成式 AI 的最新动态,为读者提供准确、实用、可落地的方法论与行业洞察。 编辑团队:内容策划 · 技术编辑 · AI 研究组 网站:bingdada.com © 2026 Bingdada. 保留所有权利。

목차

  • 引言:当PostgreSQL遇上全球8亿用户
  • 初代架构的裂缝
  • 扩展PostgreSQL至百万级QPS
  • 减少主实例负载
  • 查询优化
  • 只读副本管理
  • 自动清理调优
  • 缓存策略优化
  • 监控与告警体系
  • 关键经验总结
  • 未来展望
  • 结语
  • 相关阅读
  • 关于 Bingdada
프리미엄 광고 영역 · 한정 기간
광고 문의

브랜드를 독자의 피드에 올리세요

본문 내 광고 영역은 높은 주목도를 가진 순간으로, 신제품 출시와 이벤트 모집에 적합합니다.

비즈니스 문의

태그

#OpenAI新闻#PostgreSQL扩展#数据库优化#ChatGPT基础设施#单主架构
bingdada

bingdada

SEO & GEO 技术探索者,专注于搜索引擎优化和生成式引擎优化。

관련 글

从试点到价值重塑:五大AI价值模型驱动企业转型
AI人工智能

从试点到价值重塑:五大AI价值模型驱动企业转型

大多数企业仍将AI视为孤立实验,但领先者已将其视为一套价值模型组合。本文深入剖析五大AI价值模型——劳动力赋能、AI原生分发、专家能力、系统依赖管理与智能体运营,揭示企业如何从试点走向系统性价值重塑。

8월 2약 8분 분량
GPT-5.6:前沿智能与极致效率的完美融合
AI人工智能

GPT-5.6:前沿智能与极致效率的完美融合

OpenAI发布GPT-5.6模型家族,旗舰模型Sol以不到一半成本超越Claude Fable 5。通过负载均衡、推测解码、内核优化等创新,实现智能与效率的双重突破,让AI更普惠。

8월 2약 7분 분량
AI 万亿豪赌:算力基建狂潮背后的三重赌注与系统性风险
AI人工智能

AI 万亿豪赌:算力基建狂潮背后的三重赌注与系统性风险

超大规模厂商到 2027 年将投入近 1.1 万亿美元建设 AI 数据中心,而今年 AI 总收入仅 1500 亿至 2000 亿美元。要盈亏平衡,生产率需提升 2.7 倍。这场豪赌涉及三重假设,风险正通过债务扩散至养老金与保险,泡沫或破裂但技术可能存续。

9월 18약 7분 분량

뉴스레터 구독

최신 SEO·GEO 정보를 받아보세요.

개인정보를 존중합니다. 언제든 구독을 취소할 수 있습니다.

댓글 ({count}) (0)

로그인하여 토론에 참여하세요

로그인가입
아직 댓글이 없습니다. 첫 댓글을 작성해 주세요