SuperAPI AI 工具集

mz-benchmark

数据与分析

查看项目

更新于 10-16 06:45

技能介绍

用途:为 Materialize 添加、修改或调试性能基准场景,三套框架面向不同性能关注点,均针对本地 Docker。选择依据:单操作延迟用 Feature Benchmark;并发下 SQL 吞吐用 Scalability Test;持续负载下的性能退化用 Parallel Benchmark。

Feature Benchmark(微基准):测量单个 SQL 操作的墙钟时间,无并发,使用 testdrive 片段,适合回归测试特定代码路径。在 scenarios/.py 中新增类,继承 Scenario(默认,跑 CI)、ScenarioBig(更长,需显式开启)或 ScenarioDisabled;实现 benchmark() 返回带 / A / 与 / B */ 计时标记的 Td;必要时实现 shared()、init()、before()。执行顺序为 shared()、init()、before()、benchmark()(重复 10-50 次并测量)。辅助方法有 self.n()、self.table_ten()、self.view_ten()、self.unique_values()、self.join()、self.keyschema()/self.schema()。建议查询约 1 秒,用 SCALE 控制数据量,FIXED_SCALE 固定规模,RELATIVE_THRESHOLD 调整回归敏感度。运行:bin/mzcompose --find feature-benchmark run default --root-scenario=MyCategory。

Scalability Test:在 1、2、4…256 并发客户端下测 TPS,开环,识别扩展瓶颈,并与 Postgres 对比。在 workload/workloads/ 中新增文件或类,继承 DmlDqlWorkload、DdlWorkload 或 ConnectionWorkload,实现 operations() 返回 Operation 列表。内置操作包括 SelectOne、SelectStar、SelectLimit、SelectCount、SelectCountInMv、SelectUnionAll、Update、InsertDefaultValues、CreateTableX、PopulateTableX、DropTableX、CreateMvOnTableX、DropMvOfTableX、Connect、Disconnect。框架自动创建 t1 表、插入一行并创建物化视图 mv1。运行:bin/mzcompose --find scalability run default --workload MyWorkload。

Parallel Benchmark:在持续负载(默认 120 秒)下测延迟分布(p50/p95/p99)与 QPS,支持混合负载、开环与闭环并发,通过斜率分析检测延迟退化。在 scenarios.py 中新增继承 Scenario 的类,在 init 调用 self.init(phases=[...]),含 TdPhase 与 LoadPhase。动作类型有 StandaloneQuery、ReuseConnQuery、PooledQuery;负载模式有 OpenLoop(Periodic/Gaussian) 与 ClosedLoop。可设 guarantees 绝对保证与 regression_thresholds 相对阈值。用 @disabled 禁用场景。运行:bin/mzcompose --find parallel-benchmark run default --scenario MyScenario。

限制:资料未提供安装方式、收费、平台支持范围及具体性能数值,均暂未提供。