主要观点:探讨了用开环和闭环基准测试来测量数据库吞吐量的方法。开环基准测试易导致队列和延迟无界增长,通过 gallop 搜索和二进制搜索找到导致延迟无界增长的 QPS 值;闭环基准测试在测量吞吐量时有效,随着工作线程增加负载减轻,数据库能在不堆积大量请求的情况下达到最大吞吐量。
关键信息:
- 数据库模型包含
Database
结构体及相关函数,如NewDatabase
、Request
、Run
、processRequest
等。 - 开环基准测试函数
openLoop
通过追踪延迟来找到导致延迟无界增长的 QPS 值。 - 闭环基准测试函数
closedLoop
通过设置工作线程数来测量观察到的 QPS。 - 实验结果显示开环基准测试最大观察到的 QPS 约为 480,闭环基准测试约为 470,都接近理论上的 500(实际略小于 500)。
重要细节:
- 服务器配置每个请求 10ms,允许最多 5 个并发请求。
- 实验中通过绘图展示数据,绿色点为成功运行,红色点为不成功。
- 作者认为在理想系统中两种策略应得到相同值,但未证明,此方法学自 Denis Rystsov。两种基准测试都有用,要知道何时使用及何时会产生误导结果。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。