跳转至

长安链 20% 跨分片转账压测报告

本文记录长安链在 20% 跨分片比例下的转账性能压测结果,与 0%/1%/5%/10% 基线对比评估跨分片开销的变化趋势。

测试概要

项目 内容
测试项目 20% 跨分片比例转账压测
测试目的 验证高跨分片比例下的性能表现,与 0%/1%/5%/10% 基线对比评估跨分片开销是否仍呈线性变化
测试步骤 使用 sfc 压力工具向 150 分片发送转账交易,持续约 8 分钟
测试时间 2026-03-19 15:14:06 — 2026-03-19 15:25:55(发送 8m20s + 尾部处理 3m28s)
压力服务器 单台 32 核
分片服务器 单台 32 核(150 分片)

预期结果

指标 预期值
单分片 TPS ~5,800
成功率 ≥ 99%
性能衰减(vs 10% 基线) ~-17%
尾部延迟 ~+10 分钟
资源占用 CPU/内存/网络/IO 合理范围,无异常飙升
区块打包 正常,无异常数据或空块

测试结论

⚠️ 部分符合预期,存在瓶颈:成功率 100%,但压力服务器资源受限,分片服务器 System Load 显著上升

测试结果校准 TPS 832,506(vs 10% 的 1,004,300),降幅 17.1%,与每增加 1% 跨分片约损失 1% 性能的趋势基本一致。成功率保持 100%,零失败。但**压力服务器资源占用率过高导致发送压力上不去**,分片服务器 System Load ~48 显著高于 10% 的 ~0.08,跨分片协调压力明显增大。

关键指标对比

指标 0% 基线 1% 跨分片 5% 跨分片 10% 跨分片 20% 跨分片 变化(20% vs 10%) 是否达标
单分片 TPS ~7,000 ~7,054 ~6,727 ~6,695 ~5,550 -17.1% ✅
成功率 ≥ 99.9% 98.67% 100.00% 100.00% 100.00% 持平 ✅
尾部延迟 无 +3m 24s +4m 48s +2m 34s +3m 28s +54s ✅
校准 TPS(聚合) ~1,100,000 ~1,056,989 ~1,009,110 ~1,004,300 832,506 -17.1% ✅
交易池峰值积压 — ~500,000 笔 ~5,000 笔 ~8,000 笔 ~5,000 笔 持平 ✅

💡 趋势分析

从 0% → 1% → 5% → 10% → 20%,校准 TPS 呈持续下降趋势(1,100,000 → 1,056,989 → 1,009,110 → 1,004,300 → 832,506)。10% → 20% 区间衰减约 17.1%,基本符合每 +1% 跨分片 ≈ -1% TPS 的线性预测。

瓶颈链路

压力客户端 CPU 饱和(~100%)→ 发压速率受限
                              ↓
              分片服务器 System Load ~48 → 跨分片协调开销增大
                              ↓
              磁盘 IO 持续 ~100-300k/s → 区块提交压力
                              ↓
              尾部消化 3m28s(较 10% 增加 54s)

问题分析

  1. 压力机 CPU + 内存双重瓶颈 — CPU 满载、内存 ~70%,共同限制发压能力,发送压力上不去
  2. 分片服务器 System Load 显著上升 — 从 10% 的 ~0.08 升至 ~48,跨分片协调压力显著增大
  3. 磁盘 IO 持续压力 — 写 IOPS 保持高位
  4. 跨分片通信开销 — 网络流量持续,分片间 RPC 调用增多

压测数据

指标 数值
总请求数 13,076,415
成功请求 13,076,415
失败请求 0
成功率 100.00%
发送耗时 8m 20s
总耗时 11m 48s
发送 TPS 26,151.99(总请求 / 发送耗时)
实际 TPS 18,445.59(成功请求 / 总耗时)
校准 TPS 832,506.14

区块链监控分析

交易池

指标 数值
峰值积压 ~5,000 笔
尾部消化耗时 ~3m28s

● 交易池积压情况正常
● 尾部消化耗时 3m28s,较 10% 测试(2m34s)有所增加

区块数据

● 各分片累计交易量增长曲线基本一致,分片负载较均衡
● 区块高度正常增长,各分片间差异不大,共识过程基本正常

各节点性能详情

指标 节点 1 节点 2 节点 3 节点 4
区块打包耗时 正常(0.0s) 正常(0.0s) 正常(0.0s) 正常(0.0s)
区块提交耗时 正常(0.0s) 正常(0.0s) 正常(0.0s) 正常(0.0s)
区块验证耗时 正常(0.0s) 正常(0.0s) 正常(0.0s) 正常(0.0s)
TPS 范围 4,000~8,000 4,000~8,000 4,000~8,000 4,000~8,000

TPS 曲线

● 各分片 TPS 在压测期间保持相对稳定,波动在 4,000~8,000
● 停止发送后 TPS 逐步下降进入尾部消化

资源监控

压力服务器

CPU

指标 数值
核心数 32
聚合使用率峰值 ~95-100%(满载)
各节点 CPU 峰值 ~90%(多个实例同时触顶)
System Load 峰值 ~30+
CPU iowait 持续低位

● CPU 满载运行,是限制发压能力的首要瓶颈
● System Load 高,调度压力较大

内存

指标 数值
聚合使用率 ~60%~70%
各节点峰值 ~70%
是否 OOM 否

● 内存使用与 10% 测试基本持平

网络

指标 数值
下载速率峰值 ~3 KB/s
上传速率峰值 ~10 KB/s

● 网络流量极低,带宽未成为瓶颈

磁盘

指标 数值
IOPS(读) 峰值 ~20 k/s
IOPS(写) 峰值 ~80 k/s
CPU disk IO 占比 稳态低位

● 磁盘 IO 整体可控

TCP 连接

指标 数值
ESTABLISHED 峰值 ~900
TIME_WAIT 峰值 ~985
ActiveOpens 峰值 ~4,087
PassiveOpens ~0

● 短连接特征:与 10% 测试一致

磁盘空间

分区 文件系统 挂载点 使用率
/dev/vda1 ext4 / ~4%
/dev/vdb1d xfs /data ~21%

压力服务器资源总结

● CPU 是主要瓶颈 — 峰值 ~95-100%(满载),限制发压能力
● 内存 60%~70%,尚有余量
● 网络 带宽消耗极低
● 磁盘 IO 整体可控
● TCP 短连接模式,ESTABLISHED ~900


分片服务器

CPU

指标 数值
核心数 32
聚合使用率峰值 ~60-80%
System Load 峰值 ~48
CPU iowait 压测期间偏高

● CPU 使用率较 10% 测试(~50%)有所上升
● System Load ~48(vs 10% 的 ~0.08),跨分片协调压力显著增大
● CPU iowait 偏高,磁盘 IO 竞争仍然存在

内存

指标 数值
聚合使用率 ~30%~50%
各节点峰值 ~50%
是否 OOM 否

● 内存压力较轻,与 10% 测试基本持平

网络

指标 数值
下载速率峰值 ~4 KB/s
上传速率峰值 ~2 MB/s

● 上传流量较 10% 测试(~22.7 KB/s)显著增长,跨分片交易需要更多分片间通信
● 带宽仍在可控范围

磁盘

指标 数值
IOPS(读) 聚合低位,偶发尖峰
IOPS(写) 各节点峰值 ~300 k/s
CPU disk IO 占比 峰值偶发飙升

● 写 IOPS 较 10% 测试(~400 k/s)有所回落,磁盘 IO 仍是分片服务器的核心瓶颈
● 跨分片交易增加了额外写入,但峰值未进一步恶化

TCP 连接

指标 数值
ESTABLISHED 峰值 ~300 → 压测后逐步下降
TIME_WAIT ~0

● 长连接特征:与 10% 测试一致,TIME_WAIT 接近 0

磁盘空间

分区 文件系统 挂载点 使用率
/dev/vda1 ext4 / ~5%
/dev/vdb1d xfs /data ~10%

分片服务器资源总结

● 磁盘 IO 仍是主要瓶颈 — 写 IOPS ~300 k/s(vs 10% 的 ~400 k/s)
● System Load 显著上升 — ~48(vs 10% 的 ~0.08),跨分片协调压力显著增大
● 内存 30%~50%,余量充足
● 网络 上传 ~2 MB/s(vs 10% 的 ~22.7 KB/s),跨分片通信增量显著
● TCP 长连接,健康无堆积

资源对比

指标 压力服务器 分片服务器
CPU 核心数 32 32
CPU 聚合峰值 ~95-100% ~60-80%
System Load 峰值 ~30+ ~48
内存峰值 ~70% ~50%
网络上传峰值 ~10 KB/s ~2 MB/s
磁盘写 IOPS 峰值 ~80 k/s ~300 k/s
CPU disk IO 峰值 低位 偶发飙升
TCP ESTABLISHED 峰值 ~900 ~300
连接特征 短连接(高 TIME_WAIT) 长连接(零 TIME_WAIT)
主要瓶颈 CPU 使用率(100%) System Load + 磁盘 IO

跨分片比例趋势分析

指标 0% 基线 1% 跨分片 5% 跨分片 10% 跨分片 20% 跨分片 趋势
校准 TPS ~1,100,000 ~1,056,989 ~1,009,110 ~1,004,300 832,506 持续下降,20% 仍维持 80万+ 量级
单分片 TPS ~7,000 ~7,054 ~6,727 ~6,695 ~5,550 缓慢下降
成功率 ≥ 99.9% 98.67% 100.00% 100.00% 100.00% 5% 后稳定 100%
尾部延迟 无 +3m 24s +4m 48s +2m 34s +3m 28s 20% 较 10% 增加
发送 TPS — 21,417 16,980 25,481 26,152 20% 持续高位
System Load(分片) — — ~2.94 ~0.08 ~48 20% 显著上升
磁盘写 IOPS(分片) — ~300 k/s ~300 k/s ~400 k/s ~300 k/s 20% 低于 10%

改进建议

优先级 改进方向 具体措施
P0 解决压力机 CPU 瓶颈 CPU 100% 满载限制发压能力,增加压力服务器数量(2台+)或优化客户端性能
P1 降低分片服务器 System Load System Load ~48 显著高于 10% 的 ~0.08,优化跨分片协调机制,减少 RPC 调用开销
P1 优化分片服务器磁盘 IO 写 IOPS ~300 k/s 持续为首要瓶颈,升级 NVMe SSD 或优化 WAL/批量写入策略
P2 持续优化尾部延迟 当前 3m28s 较 10% 测试(2m34s)有所增加,评估是否可进一步优化交易池消费速率
P2 监控跨分片网络开销 上传流量增长至 ~2 MB/s,随跨分片比例进一步提升需关注网络是否成为新瓶颈
P3 继续提升跨分片比例测试 建议进行 30%/50% 跨分片压测,验证性能衰减拐点和系统极限

评论