GitHub user lizining1231 edited a comment on the discussion: [OSPP 2026] Triple
协议性能分析与优化
非瓶颈分析定位,先对这份报告做出一些初步解释:
1.
**无法复现社区现有数据趋势**:测试显示在本机环境下dubbo-go的性能表现略弱于dubbo-java,与社区测试数据结论相违背。目前排除wsl2拖慢golang的可能性,现有数据报告显示部分场景dubbo-go与gRPC部分场景QPS比值接近1:5,在本机被放大为1:10,问题需进一步换环境/切版本分支等
尝试推进排查
2. **dubbo-java无allocs/op数据**:Java 标准 API 只能统计分配字节数,没有精确的分配次数接口
3. **对benchmark工具进行了一些修复适配**:
| 行为 | 说明
|
| ---------------------------------------- |
------------------------------------- |
| `dubbo.protocol.name=tri` | 协议由 `dubbo` 改为 Triple(SPI 扩展名
`tri`) |
| `@EnableDubbo(scanBasePackages="benchmark")` | 扫描包对齐 Go 端
`benchmark.BenchmarkService` |
| protobuf 生成类 (`BenchmarkProto`) | 消息契约由手写 POJO 改为 protobuf
生成类,序列化与 Go 端一致 |
| `dubbo-rpc-triple` 依赖 | 引入 Triple 协议实现模块
|
4. **与社区一致的指标与趋势**:测试与社区现有测试数据绝对值与指标比例均不符合,但是:
①测试出的饱和拐点与社区一致, 50→100 并发下社区与本地都是 dubbo-go 已饱和/微降 dubbo-go 128B 社区测 -2.5%、本地测
+2.5%;16KiB 社区本地测都降), grpc 仍线性增长 (社区测 +10.7%、本地测 +16%)
②衰减曲线大部分形状与趋势一致
如50并发下QPS 相对衰减(这里归一化 128B=1.00):
| 框架 | 数据源 | 128B | 1KiB | 16KiB | 1MiB |
| --- | --- | --- | --- | --- | --- |
| dubbo-go | 社区 | 1.00 | 0.89 | 0.48 | 0.02 |
| dubbo-go | 本地 | 1.00 | 0.81 | 0.45 | 0.03 |
| grpc | 社区 | 1.00 | 0.87 | 0.41 | 0.01 |
| grpc | 本地 | 1.00 | 0.83 | 0.29 | 0.007 |
| dubbo-java | 社区 | 1.00 | 0.91 | 0.47 | 0.03 |
| dubbo-java | 本地 | 1.00 | 0.83 | 0.45 | 0.03 |
直观一点的话
<img width="1190" height="537" alt="image"
src="https://github.com/user-attachments/assets/c2946bec-9e91-4cd4-aaaf-ea10385cc83d"
/>
5. **本次推进带来的新事项**:
- [x] 修复benchmark保证测试成功率 #3677
- [ ] benchmark修复与提交,使其存在测试java的能力
- [ ] 解读性能报告,初步确定瓶颈并进一步推进瓶颈分析
- [ ] 排查dubbo-go在本次测试中性能表现低于dubbo-java的问题
7. **一些本机与社区测试都可以得出的优化方向结论**:
①小包相较于大包是 Triple 短板,与 grpc 差距 > 大包 (社区测得128B 低 5.4x vs 1MiB 低 4.1x ,本机测得128B 低
9.2x vs 1MiB 低 2.3x)
②大包路径需优化,MiB 大包QPS断崖下跌,P99 崩塌(QPS 跌 57 倍、P99 795ms QPS 跌 38 倍、P99 2,400ms)
GitHub link:
https://github.com/apache/dubbo-go/discussions/3673#discussioncomment-18072069
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]