feiniaofeiafei commented on PR #64892:
URL: https://github.com/apache/doris/pull/64892#issuecomment-5788062987

   # ClickBench hits_10m 性能对比
   
   ## 结论
   
   比较 **4bc449f8560**(当前被测提交)与 **4ab2cd71095**(父提交),在 
`click_bench_test.hits_10m` 上执行完整 43 条 ClickBench 查询。
   
   - **整体轻微变慢,未观察到整套查询的大幅退化**:三轮最佳热跑合计分别增加 **0.08%、1.37%、3.40%**。最终一轮为 **5.808 
→ 6.005 秒**。
   - **Q18 三轮均变慢**:+38.05%、+46.67%、+20.07%,绝对增加约 **16~29 毫秒**。它是最值得关注的可复现变化。
   - Q11、Q14 三轮也均变慢,但绝对开销较小:Q11 约 +5~13 毫秒,Q14 约 +9~15 毫秒。Q12、Q19 同向变化幅度不稳定。
   - Q10、Q17 等存在明显轮间波动,不把单轮大百分比当作稳定退化。
   - 最终脚本验证:**43/43 查询在两个版本都成功,86/86 Profile 收齐,退出码 0,无错误,原始 FE 自动恢复并校验通过。**
   
   这些是有限样本,不代表统计显著性结论。多数 SQL 只有几十到几百毫秒,需同时看绝对耗时。测试表实际为 **1000 万行、HASH(UserID) 
单桶、单副本**,不能外推为多桶大规模 MPP 性能结论。
   
   ## 三轮整体结果
   
   口径:每条 SQL 执行首轮一次、热跑两次,取两次热跑较小值,再对全部 43 条求和。正数表示当前提交更慢。
   
   | 轮次 | 父提交合计 (s) | 当前提交合计 (s) | 变化 |
   |---|---:|---:|---:|
   | 首轮正向 | 5.917660 | 5.922474 | +0.08% |
   | 第二轮反向 | 5.904619 | 5.985630 | +1.37% |
   | 最终正向(修正后脚本) | 5.808026 | 6.005343 | +3.40% |
   
   - 正向顺序:父提交 → 当前提交;反向顺序相反,标签含义始终不变。
   - 计时包含 mysql 客户端启动和结果返回,不清空系统/BE 缓存。Profile 获取、计划采集、结果文件写入在计时之外。
   - 前两轮 SQL 全部成功,但初版脚本误将 Q1/Q7 的成功 Profile 状态 `EOF` 判成收集失败。上表使用保留的真实 SQL 
计时,包含这两条;前两轮原始工具报告按错误规则排除了它们,因此原始报告总数与上表不同。最终轮使用修正后的脚本完整重跑,全部成功。旧报告保留原样以便审计。
   
   ## 计划变化
   
   三轮均有 9 条 SQL 的 shape plan 
在父提交与当前提交之间变化:**Q9、Q10、Q11、Q12、Q14、Q17、Q18、Q19、Q23**。
   
   
   ### Q18 的计划与 Profile
   
   SQL 为按 `UserID, SearchPhrase` 聚合后 `LIMIT 10`。父提交三轮保持聚合直接消费扫描的结构,当前提交存在两种计划形态:
   
   1. **首轮当前提交**在聚合前新增 Hash Exchange:发送算子输入 10,000,000 行,`ExecTime` avg 50.423 
ms、max 64.681 ms;对应 Profile 总耗时父提交 55 ms、当前 79 ms。这里比较的是执行计时,不把依赖等待当计算成本。
   2. **反向和最终轮当前提交**在 Exchange 前增加局部聚合。反向 Exchange 仅输入 4891 行,最终轮仅输入 2452 
行;最终轮发送算子执行 max 0.141 ms。此时不能继续将差异归因于“交换 1000 万行”。
   3. 最终轮 Profile:总耗时 54 → 69 ms,FE Plan Time 均为 5 ms,Total Instances Num 9 → 
17;两版扫描输出均为 10,000,000 行。说明存在聚合/流水线结构变化,但小幅差异还包含执行和调度波动,尚未定位后两轮的全部额外耗时。
   4. 当前提交跨 FE 重启出现不同聚合计划,已保留每轮计划和 
Profile。是否来自等价方案选择顺序等优化器因素,需要单独调查,不能仅凭这些结果确定根因。
   
   
   ## 43 条查询明细
   
   耗时列来自最终修正后脚本的一轮;后三列分别给出三轮变化。单位 ms。
   
   | SQL | 最终父提交最佳热跑 | 最终当前提交最佳热跑 | 首轮变化 | 反向变化 | 最终变化 |
   |---|---:|---:|---:|---:|---:|
   | Q1 | 60.547 | 63.313 | +15.44% | -7.52% | +4.57% |
   | Q2 | 52.070 | 53.088 | -26.19% | -13.26% | +1.96% |
   | Q3 | 58.870 | 55.280 | +1.32% | +0.45% | -6.10% |
   | Q4 | 58.067 | 52.932 | -3.71% | +7.74% | -8.84% |
   | Q5 | 184.524 | 182.216 | -1.82% | -2.37% | -1.25% |
   | Q6 | 108.546 | 98.568 | -2.04% | +1.47% | -9.19% |
   | Q7 | 31.235 | 29.344 | -7.83% | -13.88% | -6.05% |
   | Q8 | 46.279 | 52.665 | -11.07% | +7.83% | +13.80% |
   | Q9 | 89.554 | 87.208 | -8.97% | -4.01% | -2.62% |
   | Q10 | 135.452 | 182.078 | +2.67% | -11.02% | +34.42% |
   | Q11 | 62.830 | 75.519 | +7.90% | +19.67% | +20.20% |
   | Q12 | 63.737 | 74.329 | +1.58% | +15.44% | +16.62% |
   | Q13 | 85.630 | 87.963 | -0.17% | -0.62% | +2.72% |
   | Q14 | 107.885 | 122.611 | +8.40% | +12.55% | +13.65% |
   | Q15 | 103.512 | 109.048 | -0.48% | -3.11% | +5.35% |
   | Q16 | 81.859 | 82.683 | -1.39% | +3.49% | +1.01% |
   | Q17 | 201.248 | 230.207 | -0.21% | +15.28% | +14.39% |
   | Q18 | 77.753 | 93.360 | +38.05% | +46.67% | +20.07% |
   | Q19 | 303.005 | 310.830 | +4.14% | +13.28% | +2.58% |
   | Q20 | 31.926 | 33.869 | +3.73% | +4.36% | +6.09% |
   | Q21 | 77.217 | 73.305 | +29.32% | +19.71% | -5.07% |
   | Q22 | 84.938 | 87.222 | +4.30% | +1.62% | +2.69% |
   | Q23 | 161.724 | 166.388 | -2.64% | +7.11% | +2.88% |
   | Q24 | 67.096 | 69.636 | +36.41% | -29.23% | +3.79% |
   | Q25 | 40.473 | 42.488 | +34.91% | -18.14% | +4.98% |
   | Q26 | 53.368 | 55.289 | -5.25% | +24.83% | +3.60% |
   | Q27 | 38.738 | 43.335 | +38.12% | -13.08% | +11.87% |
   | Q28 | 132.012 | 131.976 | -0.93% | +1.15% | -0.03% |
   | Q29 | 1606.117 | 1600.442 | -5.48% | +0.90% | -0.35% |
   | Q30 | 63.713 | 71.325 | +12.71% | +17.86% | +11.95% |
   | Q31 | 72.508 | 73.893 | -4.35% | +4.84% | +1.91% |
   | Q32 | 80.589 | 78.560 | -0.47% | +1.26% | -2.52% |
   | Q33 | 364.399 | 421.019 | +3.54% | -2.42% | +15.54% |
   | Q34 | 325.971 | 336.840 | -0.32% | -6.96% | +3.33% |
   | Q35 | 345.128 | 327.053 | -1.01% | -1.72% | -5.24% |
   | Q36 | 77.582 | 78.304 | -2.30% | -0.83% | +0.93% |
   | Q37 | 40.814 | 38.758 | +5.75% | -1.06% | -5.04% |
   | Q38 | 37.608 | 37.927 | -8.67% | -1.87% | +0.85% |
   | Q39 | 36.135 | 36.955 | -10.22% | +0.73% | +2.27% |
   | Q40 | 40.243 | 45.421 | -10.36% | +2.08% | +12.87% |
   | Q41 | 40.045 | 37.359 | -0.61% | +0.51% | -6.71% |
   | Q42 | 38.857 | 36.244 | +6.71% | -3.85% | -6.72% |
   | Q43 | 38.222 | 38.493 | -2.67% | +0.08% | +0.71% |
   
   ## 脚本与复现
   
   工具提交:`0dd4523da31`。被测 FE 版本仍是 `4bc449f8560` 与 `4ab2cd71095`,新增工具提交不改变 FE。
   
   新增 
[run-remote-clickbench-compare.py](/Users/moailing/Documents/aawork/gitcode/master/doris/tools/clickbench-tools/run-remote-clickbench-compare.py),使用仓库现有
 `sql/queries.sql`,按原工具顺序编号 1–43,只替换 `FROM hits` 为指定表名。
   
   
   
   加 `--reverse` 反向复测;`--queries '9,10,18'` 选择 SQL;`--mode plan|perf|both` 
选择阶段;`--dry-run` 查看配置。默认备份并自动恢复原始 FE,遇到 SQL/Profile/恢复错误时保留错误并返回非零状态。
   
   使用上一轮准确构建的两个 FE 包,依赖库一致,仅 `doris-fe.jar` 不同:
   
   - 父提交 jar:`ce0f75a0f6aa150682796b9c95aa5b87e04a4aaf7ea1ef85caaf33bcee7fff79`。
   - 当前提交 
jar:`ead0ddef88068068ae674c3a88ad4d9863f9d576fc1648fed1a226ce1a0d75de`。
   - BE 保持原版本 `534cef1f20`,没有升级。本次没有修改 Doris 内核或表数据。
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to