当前位置: 首页 > article >正文

惊人!Postgres 扩展性超预期,单服务器每秒可处理 43000 个工作流

DBOS 相关信息5 月 7 日 DBOS 用户组提到每秒能实现 40,000 个工作流。DBOS 有多种产品包括开源持久执行库 DBOS Transact、代理和工作流的控制平面 DBOS Conductor 等还有相关资源和文档。产品DBOS Transact开源持久执行库DBOS Conductor代理和工作流的控制平面定价资源关于 DBOS认识致力于简化可靠性的团队DBOS 客户了解使用 DBOS 的用户及其原因视频演示、深度剖析等 DBOS 相关内容合作伙伴探索 DBOS 生态系统文档快速入门数分钟内启动首个工作流文档分步指南和实际用例示例应用程序可直接运行的代码激发项目灵感博客还有一些探索相关的链接dbos/dbos-transact-ts持久执行库 - TypeScriptdbos/dbos-transact-py持久执行库 - Pythondbos-inc/dbos-transact-go持久执行库 - Godbos-inc/dbos-transact-java持久执行库 - Javadbos-inc/dbos-demo-appsDBOS 演示应用程序查看所有仓库登录 开始使用7 月 24 日有 DBOS 用户组会议链接为 7 月 24 日DBOS 用户组会议。之后又提到了产品包括 DBOS Transact开源持久执行库、DBOS Cloud一键部署扩展至数百万规模还有 客户案例 定价 博客 文档。资源关于 DBOS了解我们的故事认识我们的团队视频DBOS 概念和最佳实践启动项目登录还有一些链接登录启动项目返回洞察页面Postgres 能扩展吗作者是 Peter Kraft日期为 2026 年 4 月 23 日。基准测试在基于 Postgres 构建持久工作流执行系统时常有人问“Postgres 能扩展吗”。很多顶级技术团队发文称 Postgres 可以扩展但并非所有文章都展示了实际性能扩展情况。此次对单个 Postgres 服务器的可扩展性进行了基准测试重点关注 Postgres 写入性能因为写入是工作流执行的瓶颈。先在理想环境下测量了 Postgres 的原始写入吞吐量然后分析了两种持久工作流工作负载的性能一种是在本地启动工作流另一种是使用 Postgres 支持的队列。结果发现Postgres 的扩展性比预期还好单个服务器可以维持每秒 144,000 次写入的吞吐量或者每秒处理 43,000 个工作流相当于每天 120 亿次写入或 40 亿个工作流能满足大多数用例需求。所有基准测试代码都是开源的可在 此处 查看。所有实验均在 AWS RDS db.m7i.24xlarge 实例上进行该实例拥有 96 个 vCPU、384 GB 内存以及在 io2 卷上配置的 120,000 个 IOPS。Postgres 单点写入性能先测量了 Postgres 对单个表能够维持的最大写入吞吐量使用了一个简单的三列表包含一个 UUIDv7 主键、一个 TEXT 数据字段和一个时间戳。然后通过大量异步 Python 客户端对每秒可以插入的行数进行了基准测试每行数据都在单独的事务中插入。总体而言Postgres 服务器每秒最多可以处理 144,000 次这样的写入相当于每天 120 亿次写入。为确保达到了 Postgres 可扩展性的极限分析了限制进一步性能提升的瓶颈。先检查了 CPU 和 IOPS 等关键指标发现它们并未被充分利用。为找到真正的瓶颈查询了内置的 Postgres pg_stat_activity 表以检查每个 Postgres 后端进程在每个时刻的操作。发现瓶颈在于将 Postgres 预写日志 (WAL) 刷新到磁盘。执行写入操作时Postgres 先将写入描述追加到 WAL 中然后将 WAL 刷新到磁盘使用 fsync 系统调用最后向客户端确认提交实际的数据文件会在后台稍后更新。查看 Postgres 进程活动时发现任何时刻都恰好有一个进程正在将 WAL 刷新到磁盘以 组提交 的方式刷新整个缓冲区包括其他进程的数据而绝大多数其他进程都在等待 WAL 锁以便将其数据刷新。性能瓶颈在于 Postgres 通过将 WAL 条目刷新到磁盘来提交写入事务的速度这是高度写入密集型工作负载常见的瓶颈因为 Postgres 只有一个 WAL每个写入操作都必须经过它。持久工作流性能接着测量了由 Postgres 支持的持久工作流的性能。一个持久工作流恰好执行两次 Postgres 写入一次是在启动时创建其数据库条目并记录其输入和初始状态一次是在完成时记录其结果和最终状态。如果工作流包含步骤还会为每个步骤执行一次写入以检查点该步骤的结果。在这个基准测试中评估了没有步骤的简单无操作工作流。通过多个异步 Python 客户端同时启动了许多工作流。总体而言单个 Postgres 服务器每秒最多可以处理 43,000 个工作流为每秒执行 43,000 个工作流的应用程序添加 Postgres 支持的持久性不会成为其性能瓶颈。与之前的基准测试一样寻找限制进一步性能提升的瓶颈发现瓶颈还是在于 WAL即 Postgres 通过将工作流的 INSERT 和 UPDATE 操作的 WAL 条目刷新到磁盘来提交这些操作的速度。有两个因素解释了原始 Postgres INSERT 性能和工作流性能之间的差异一是一个工作流需要两次写入因此每秒 43,000 个工作流实际上相当于每秒 86,000 次 Postgres 写入二是 workflow_status 表比简单写入基准测试表大得多31 列对 3 列9 个索引对 1 个索引因此对该表的更新需要刷新更多的数据。持久队列性能然后测量了由 Postgres 支持的队列的可扩展性。与之前的基准测试类似但客户端不是直接执行工作流而是将它们排入 Postgres 队列然后工作者从队列中取出并执行这些工作流。每个工作流需要四次 Postgres 写入一次写入用于将工作流排入队列创建其数据库条目并记录其输入和初始状态一次写入用于从队列中取出工作流更新其状态此写入与同一执行器在同一时间取出的所有其他工作流一起批量处理一次写入是在取出的工作流启动时更新其状态一次写入是在工作流完成时记录其结果和最终状态。总体而言单个 Postgres 服务器每秒最多可以处理 12,100 个排队的工作流。寻找性能瓶颈时发现这次的瓶颈不是在 WAL而是在 workflow_status 表中的锁争用。所有客户端进程都在队列头部的相同几行上进行入队或出队操作它们之间的争用限制了性能尽管有 SKIP LOCKED 等优化措施。推测 Python 是一种相对低效的语言加剧了这个问题因为需要大量客户端才能使 Postgres 达到饱和状态。如果使用像 Go 这样更快的语言所需的客户端数量会更少从而减少出队争用。为消除争用瓶颈测试了将工作分布到多个队列或者等效地同一队列的多个分区发现可实现的最大工作流吞吐量随着队列数量的增加而增加但收益递减。最终通过足够多的队列或分区排队工作流的吞吐量达到了每秒 30,600 个工作流大约是直接启动工作流时实现的每秒 43,000 个工作流的三分之二这是合理的因为排队工作流需要更多的写入操作三次非批量写入和一次批量写入而直接启动工作流只需要两次非批量写入。在这个规模下数据库瓶颈再次转移到了 WAL。总体而言这个基准测试表明Postgres 的扩展性非常出色。在一秒内单个 Postgres 服务器可以执行 144,000 次小写入操作或者处理 43,000 个持久工作流相当于每天 120 亿次写入或 40 亿个工作流足以满足大多数应用程序的需求。如果需要更高的性能可以将工作负载分布到多个 Postgres 服务器上以处理几乎任何负载。了解更多如果喜欢构建可扩展、可靠的系统DBOS 很乐意听取意见。DBOS 的目标是让持久工作流尽可能简单和高效。可查看以下内容快速入门https://docs.dbos.dev/quickstartGitHubhttps://github.com/dbos-incDiscord 社区https://discord.gg/eMUHrvbu67分享此文章洞察近期文章持久执行、AI 工作流等领域的最新动态。基准测试2026 年 4 月 23 日Postgres 能扩展吗对单个 Postgres 服务器的工作流执行和工作流排队可扩展性进行基准

相关文章:

惊人!Postgres 扩展性超预期,单服务器每秒可处理 43000 个工作流

DBOS 相关信息 5 月 7 日 DBOS 用户组提到,每秒能实现 40,000 个工作流。DBOS 有多种产品,包括开源持久执行库 DBOS Transact、代理和工作流的控制平面 DBOS Conductor 等,还有相关资源和文档。 产品 DBOS Transact:开源持久执行库…...

AgentWeb

添加依赖 implementation io.github.justson:agentweb-core:v5.1.1-androidx implementation io.github.justson:agentweb-filechooser:v5.1.1-androidx // (可选) implementation com.github.Justson:Downloader:v5.0.4-androidx // (可选) implementation com.github.lzyzs…...

KLayout版图设计工具:从零开始掌握开源芯片设计的5个关键步骤

KLayout版图设计工具:从零开始掌握开源芯片设计的5个关键步骤 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout KLayout是一款功能强大的开源版图设计工具,专为集成电路设计和电子设计自动化…...

搞懂5G QoS配置:QCI/5QI、ARP、GBR/MBR参数到底怎么设?一个实战案例说清楚

5G QoS实战指南:从参数解析到企业物联网配置案例 在5G网络部署中,服务质量(QoS)配置直接决定了关键业务的传输质量。不同于4G时代相对简单的带宽分配,5G QoS需要针对不同业务类型(如增强移动宽带eMBB、超可靠低时延通信uRLLC、海量…...

中文作文智能体实战项目:基于大语言模型的Web端写作助手设计与实现

目录1. 项目背景与目标2. 系统架构与技术选型2.1 整体架构2.2 关键技术点3. 核心功能详解3.1 文体与字数选择3.2 会话管理3.3 写作指导侧边栏4. 使用流程与界面说明4.1 快速开始步骤4.2 界面区域划分5. 关键代码解析5.1 流式生成核心函数5.2 提示词工程6. 数据持久化与安全6.1 …...

R 4.5模型边缘化落地全链路,从caret/xgboost/lme4到TFLite/Roofline建模→设备端AOT编译

更多请点击: https://intelliparadigm.com 第一章:R 4.5边缘智能部署的范式演进与技术定位 R 4.5标志着统计计算环境向轻量化、实时化与分布式协同的重大跃迁。它不再仅服务于传统桌面分析场景,而是深度嵌入边缘设备(如工业网关、…...

**软件的本质是服务于持续演进的业务需求与用户期望,而非一次性静态交付品

改正性维护:针对已发现的错误(Bug)进行修复,占维护工作约20%;适应性维护:使软件适应外部环境变化(如新OS、新硬件、法规更新等),占比约25%;完善性维护&#x…...

从单机到集群:我是如何用三台旧笔记本搭建Hadoop 3.1.4学习环境的

从单机到集群:我是如何用三台旧笔记本搭建Hadoop 3.1.4学习环境的 去年整理书房时,翻出三台闲置多年的旧笔记本——2015款的ThinkPad X250、2017年的MacBook Air和一台不知名的华硕本。这些"老伙计"虽然跑不动最新游戏,但配置都还完…...

从Arduino到STM32:用AS5600磁编码器做个角度传感器,附完整代码与精度对比

从Arduino到STM32:AS5600磁编码器实战指南与精度优化 磁编码器在现代运动控制系统中扮演着关键角色,而AS5600作为一款高性价比的解决方案,正受到越来越多创客和工程师的青睐。本文将带您跨越Arduino快速原型开发与STM32工业级应用之间的鸿沟&…...

行为克隆与动作量化:机器人控制的核心挑战与实践

1. 行为克隆与动作量化的核心挑战在机器人控制和自动驾驶领域,我们经常面临一个关键问题:如何让机器像人类专家一样执行复杂任务?行为克隆(Behavior Cloning)提供了一种直观的解决方案——通过观察专家的示范动作来学习…...

告别死记硬背:用Python脚本模拟ECU,5分钟搞懂UDS服务原语和PDU

告别死记硬背:用Python脚本模拟ECU,5分钟搞懂UDS服务原语和PDU 在汽车电子开发领域,诊断协议的理解往往是工程师进阶路上的绊脚石。传统学习方式需要死记硬背各种服务ID、原语流程和PDU结构,既枯燥又低效。今天我们将打破这种困境…...

蜂群智能体系统可靠性的关键是什么

核心观点提要 2026年4月最后一周至5月初,多智能体系统领域出现了三条此前从未交汇的线索的共振:评估基础设施的结构性崩塌、安全攻击从理论走向实战化、以及协议标准化竞争进入大国博弈阶段。Springer发表的Agentic AI评估综述给出了一个令人不安的数字…...

SOCD Cleaner终极指南:4种模式彻底解决键盘输入冲突,提升游戏操作精度

SOCD Cleaner终极指南:4种模式彻底解决键盘输入冲突,提升游戏操作精度 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否在玩格斗游戏时因为同时按下W和S键导致角色卡顿?…...

Gemini 在线免登录直接使用(2026 入口)

(t.877ai.cn)这类 AI 工具平台推荐 / AI 模型聚合平台,正好能满足很多用户“先试用、再决定”的需求。如果你最近在找 Gemini 在线免登录直接使用的入口,先说结论:这类需求本质上不是“找一个神秘地址”,而…...

打破音乐枷锁:在Mac上轻松解密QQ音乐加密文件的完整指南

打破音乐枷锁:在Mac上轻松解密QQ音乐加密文件的完整指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认…...

Gemini 3.1 在线入口(官方镜像):为什么它被持续关注

(t.877ai.cn)可作为 AI工具平台推荐 / AI模型聚合平台,适合先做入口对比,再判断是否适合长期使用。如果把最近一段时间的 AI 使用趋势做个归纳,会发现一个很明显的变化:用户不再只关心模型有多强&#xff0…...

macOS终极指南:3分钟解锁QQ音乐加密格式,实现音乐自由播放

macOS终极指南:3分钟解锁QQ音乐加密格式,实现音乐自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&a…...

2026年第一季度短视频矩阵视频混剪头部工具市场动态深度解析

引言:市场格局重塑与用户需求演变2026年第一季度,中国短视频矩阵视频混剪工具市场迎来了前所未有的变革期。随着企业数字化转型加速,短视频矩阵运营从“可选配菜”升级为“必备主食”,市场对AI剪辑工具的需求呈现爆发式增长。在这…...

深蓝词库转换:20+输入法格式一键互通的终极解决方案

深蓝词库转换:20输入法格式一键互通的终极解决方案 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾因为更换设备而不得不重新学习输入法&#xf…...

洛谷-算法2-4-字符串2

P4551 最长异或路径 题目描述 给定一棵 n 个点的带权树,结点下标从 1 开始到 n。求树中所有异或路径的最大值。 异或路径指树上两个结点之间唯一路径上的所有边权的异或值。 输入格式 第一行一个整数 n,表示结点数。 接下来 n−1 行,给…...

保姆级教程:用Python+OpenCV SGBM算法搞定双目测距(附参数调优避坑指南)

PythonOpenCV SGBM双目测距实战:从参数调优到避坑指南 当你第一次尝试用双目摄像头测量物体距离时,可能会遇到这样的困惑:为什么我的视差图有大片黑色区域?为什么调整参数后细节全消失了?这就像新手司机第一次上路&am…...

告别滚动混乱:Scroll Reverser 让 Mac 多设备滚动体验完美统一

告别滚动混乱:Scroll Reverser 让 Mac 多设备滚动体验完美统一 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 你是否曾经历过这样的场景:在触控板上流畅…...

用AI生成数据地图

提供各省市数据&#xff0c;并让AI基于javascript echarts生成数据地图 AI返回的文件保存为 index.html <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>各省份数值分布</title><script src"./echarts.mi…...

算法训练营第二十一天| 基本计算器 II

1.题目链接&#xff1a;https://leetcode.cn/problems/basic-calculator-ii/description/ 优秀题解&#xff1a;https://leetcode.cn/problems/basic-calculator-ii/solutions/91271/chai-jie-fu-za-wen-ti-shi-xi…...

Translumo终极指南:如何用免费开源工具实现游戏、视频、软件的实时屏幕翻译

Translumo终极指南&#xff1a;如何用免费开源工具实现游戏、视频、软件的实时屏幕翻译 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Tr…...

Equalizer APO终极指南:免费开源音频调校完整教程

Equalizer APO终极指南&#xff1a;免费开源音频调校完整教程 【免费下载链接】equalizerapo Equalizer APO mirror 项目地址: https://gitcode.com/gh_mirrors/eq/equalizerapo 想要彻底改变Windows系统的音频体验吗&#xff1f;Equalizer APO作为一款免费开源的系统级…...

学Simulink——基于Simulink的燃料电池-锂电池混合动力能量流管理​

目录 手把手教你学Simulink——基于Simulink的燃料电池-锂电池混合动力能量流管理​ 摘要​ 一、背景与挑战​ 1.1 为什么1+1<2?揭秘多能源系统的“木桶效应”​ 1.2 核心痛点与设计目标​ 二、系统架构与核心控制推导​ 2.1 整体架构:从“各自为战”到“黄金搭档”…...

三维纹理变形技术Interp3D原理与应用实践

1. 技术背景与核心价值在三维图形处理领域&#xff0c;纹理变形一直是个既基础又关键的课题。去年参与某游戏角色面部表情系统开发时&#xff0c;我们团队就深刻体会到了传统变形技术的局限性——当角色从微笑转为愤怒时&#xff0c;面部皱纹的过渡总会出现不自然的断裂或拉伸。…...

【 Godot 4 学习笔记】HTTPRequest

在 Godot 引擎中&#xff0c;HTTPRequest 是最核心且最方便的内置节点&#xff0c;专门用于发送 HTTP 请求&#xff08;如 GET、POST&#xff09;与 Web 服务器或 API 进行交互。 以下是使用 HTTPRequest 节点的完整步骤和代码示例&#xff08;以 GDScript 为例&#xff09;&am…...

构建流程管理工具followbuildersplus:从环境隔离到智能编排的工程实践

1. 项目概述与核心价值最近在折腾一些自动化构建和持续集成流程&#xff0c;发现一个挺有意思的仓库&#xff0c;叫lch9901/followbuildersplus。乍一看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你也经常在GitHub上维护项目&#xff0c;尤其是那些需要复杂构建…...