Neki平台上每秒1.18亿次查询

Hacker News Top 新闻

摘要

PlanetScale在其Neki平台上实现了每秒1.18亿次查询的性能,并在512个分片上实现了线性扩展,展示了卓越的数据库操作性能和吞吐量。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/11 17:25

# 在Neki上实现每秒1.18亿次查询 —— PlanetScale 来源:https://planetscale.com/blog/118-million-queries-per-second-on-neki 昨日我们发布了Neki (https://planetscale.com/blog/introducing-neki)的平台预览版。为庆祝发布,我们决定在Neki上测试每秒100万次查询的运行能力。在5个分片上我们很快达成了这个目标,于是决定进一步挑战性能极限。 最终测试在512个分片上完成,达到每秒1.18亿次查询的处理能力,数据总量达1.22 PB。 ## 线性扩展能力 (https://planetscale.com/blog/118-million-queries-per-second-on-neki#linear-scalability) 基准测试设计非常简洁:单分片点查询,每次查询通过主键获取单行数据。不涉及写入操作、联表查询或跨分片请求。每个分片接收的工作负载相互隔离,确保没有单次查询会跨越多个分片。 我们的目标是让每个分片保持20万次/秒的查询能力,然后通过扩展集群来提升整体吞吐量。从5个分片扩展到50个,最终达到512个分片。 | 分片数量 | 路由节点数 | 实际吞吐量(QPS) | 单分片QPS | |----------|------------|-------------------|-----------| | 5 | 99 | 1,999,625 | 199,925 | | 50 | 489 | 99,223,900 | 198,478 | | 512 | 480 | 118,538,803 | 231,521 | 分片数量增加10倍,吞吐量也相应提升10倍。从5个分片扩展到50个时,单分片查询率波动范围控制在0.8%以内。在512分片规模下,由于分片仍存在性能余量,我们允许负载生成器继续加压,最终每个分片稳定在23.1万次/秒(而非原定的20万次)。 ## 1.185亿次/秒的查询能力 (https://planetscale.com/blog/118-million-queries-per-second-on-neki#1185-million-qps) 在512个分片和1.22 PB数据规模下,我们持续16分钟保持了`118,538,803`次/秒的查询吞吐量。峰值记录达到`118,747,267`次/秒。 - 512个分片,每个分片独立运行一个Postgres主节点(配置为`r8g.16xlarge`实例) - 480个Neki路由器节点,各自运行在独立的`8xlarge`实例上 - 路由器p99延迟为6.06毫秒,客户端p99延迟为13.95毫秒 - 每秒67次错误(约每180万次查询出现1次错误) - 集群整体读取IOPS达1580万 - 网络带宽超过2 Tb/秒 需要特别说明:本次测试中分片仅运行主节点(无副本),工作负载为纯读取操作,查询复杂度各异,且在测试时段内未发生故障转移。 我们将在后续文章中详细阐述达成1亿次/秒查询能力的工程实践与技术挑战。

相似文章

PlanetScale 的 Neki

Hacker News Top

Neki 是由 PlanetScale 提供的分片式 Postgres 解决方案,可实现水平扩展至数亿 QPS 和 PB 级数据,且操作零停机。

Neki

Hacker News Top

Neki是来自PlanetScale的分片式PostgreSQL,旨在保持标准PostgreSQL兼容性和内置在线工作流程的同时,实现跨多台服务器扩展PostgreSQL数据库。

让768台服务器看起来像1台

Hacker News Top

PlanetScale介绍了如何使用数据库分片将关系型数据库从单台服务器扩展到768台服务器,并解决诸如写入限制和资源争用等瓶颈问题。