跳转至

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

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

测试概要

项目 内容
测试项目 5% 跨分片比例转账压测
测试目的 验证中等跨分片比例下的性能表现,与 0%/1% 基线对比评估跨分片开销的线性变化趋势
测试步骤 使用 100 个 sfc 压力进程向 150 分片发送数据,持续 10 分钟
测试时间 2026-03-10 14:45:02 — 2026-03-10 15:21:35(发送 10m + 尾部处理 4m48s)
压力服务器 10.15.21.57(32 核)
分片服务器 10.15.21.154(32 核)

关于分片与链的关系

本次测试部署 150 个分片,每个分片即为一条独立的链。区块链监控以链为维度采集数据,因此后文的分片性能详情以 chain 为单位呈现。

预期结果

指标 预期值
单分片 TPS ~10,000
成功率 ≥ 99.9%
性能衰减(vs 0% 基线) ≤ 10%
尾部延迟 无明显积压
资源占用 CPU/内存/网络/IO 合理范围,无异常飙升
区块打包 正常,无异常数据或空块

测试结论

符合预期:整体满足百万 TPS 要求

测试结果达到百万 TPS 性能目标,成功率 100.00%(零失败分片),相较 1% 测试中 2 个分片掉线的问题有明显改善。但尾部延迟从 3m24s 增加到 4m48s,交易池积压消化时间更长,反映出跨分片比例提升后后端处理压力增大。

关键指标对比

指标 0% 基线 1% 跨分片 5% 跨分片 变化(5% vs 1%) 是否达标
单分片 TPS ~7,000 ~7,054 ~6,727 -4.6% ✅
成功率 ≥ 99.9% 98.67% 100.00% +1.33pp,零掉线 ✅
尾部延迟 无明显积压 +3m 24s +4m 48s +1m 24s ✅
校准 TPS(聚合) ~1,100,000 ~1,056,989 ~1,009,110 -4.5% ✅
交易池峰值积压 — ~500,000 笔 ~5,000 笔 大幅降低 ✅

趋势分析

从 0% → 1% → 5%,校准 TPS 呈线性下降趋势(1,100,000 → 1,056,989 → 1,009,110),每增加 1% 跨分片比例约衰减 ~1%。按此趋势外推,10% 跨分片预计校准 TPS ~960,000,仍可维持在百万量级附近。

瓶颈链路

压力客户端 CPU 饱和(95%)→ 发压速率受限
                              ↓
              分片服务器磁盘 IO 竞争 → 区块提交延迟
                              ↓
              尾部消化 4m48s(较 1% 增加 1m24s)

问题分析

  1. 尾部延迟增加 — 发送 TPS(16,980)与实际 TPS(11,469)差距拉大(vs 1% 的 21,417/15,984),跨分片交易需要额外的分片间通信开销,导致后端处理速率进一步下降
  2. 压力服务器 CPU 饱和 — 峰值 ~95%,高于 1% 测试的 ~90%,跨分片交易构造和路由比纯片内交易消耗更多 CPU
  3. 发送 TPS 下降 — 16,980 vs 1% 的 21,417,降幅 20.7%,压力客户端 CPU 成为发压瓶颈
  4. 分片服务器磁盘 IO 持续偏高 — 跨分片交易产生额外的日志和状态写入

压测数据

指标 数值
总请求数 10,188,396
成功请求 10,188,240
失败请求 156
成功率 100.00%
发送耗时 10m 0.03s
总耗时 14m 48.32s
发送 TPS 16,979.81(总请求 / 发送耗时)
实际 TPS 11,469.33(成功请求 / 总耗时)
校准 TPS 1,009,109.53

指标说明

  • 发送 TPS = 总请求数 / 发送耗时,衡量压力客户端的发压速率
  • 实际 TPS = 成功请求 / 总耗时,衡量端到端吞吐能力(含尾部消化时间)
  • 校准 TPS = 所有分片的聚合 TPS,用于计算单分片 TPS(校准 TPS / 150 ≈ 6,727)

区块链监控分析

交易池

指标 数值
峰值积压 ~5,000 笔
达峰时间 ~14:50
清空时间 ~15:10
尾部消化耗时 ~20 分钟(14:50 → 15:10)
  • 交易池在 14:45 开始增长,~14:50 达到 ~5,000 笔峰值
  • 峰值后缓慢下降,~15:10 基本清空
  • 相较 1% 测试峰值 50 万笔大幅降低,交易流转更加平稳

区块数据

  • 各分片累计交易量增长曲线基本一致,分片负载较均衡
  • 区块高度从约 200 增至 ~3,000+,各分片间差异不大,共识过程基本正常
  • 交易数累计达 ~1.75M per shard

各节点性能详情

指标 节点 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
指标 节点 1 节点 2 节点 3 节点 4
打包异常次数 902 297 146 97
提交异常次数 176 1,078 0 0
验证异常次数 2,763 606 719 491
同步异常次数 824 2,981 0 0
区块延迟时间 4,742 524 124 1,418
区块验证时间 2,491 1,244 151 0
区块同步时间 3,706 3,603 815 432

异常分析

与 1% 测试异常集中在单节点不同,5% 测试中异常分布更加分散。节点 1 验证异常最高(2,763 次),节点 2 同步异常最高(2,981 次)。这表明跨分片比例提升后,各节点的负载更加均匀但整体异常面更广。

TPS 曲线

  • 各分片 TPS 在 14:45~14:55 期间波动在 4,000~8,000
  • 14:55 后 TPS 逐步下降(发送结束,进入尾部消化)
  • 峰值 TPS 较 1% 测试(5,000~15,000)有所收窄,波动更平稳

资源监控

分片服务器(10.15.21.154)

CPU

指标 数值
核心数 32
聚合使用率峰值 60%(14:4514:55)
各节点 CPU 峰值 ~80%(部分核心触顶)
System Load 峰值 ~2.94
CPU iowait 压测期间偏高(峰值 ~10%)
  • 聚合 CPU ~60%,与 1% 测试持平
  • System Load ~2.94,远低于 1% 测试的 ~70,说明 CPU 调度压力大幅改善
  • CPU iowait 仍偏高,磁盘 IO 竞争仍然存在

内存

指标 数值
聚合使用率 ~30%~50%
各节点峰值 ~50%
是否 OOM 否
  • 内存压力较轻,与 1% 测试基本持平

网络

指标 数值
下载速率峰值 ~4 KB/s
上传速率峰值 ~875 KB/s
  • 上传流量较 1% 测试(~341 KB/s)增长 ~156%,跨分片交易需要更多的分片间通信
  • 带宽仍在可控范围

磁盘

指标 数值
IOPS(读) 聚合低位,偶发尖峰
IOPS(写) 各节点峰值 ~300 k/s
CPU disk IO 占比 峰值偶发飙升
  • 写 IOPS 与 1% 测试持平(~300 k/s),磁盘 IO 仍是分片服务器的核心瓶颈
  • 跨分片交易增加了额外写入,但峰值未进一步恶化

TCP 连接

指标 数值
ESTABLISHED 峰值 ~300 → 压测后逐步下降
TIME_WAIT ~0
ActiveOpens 峰值 ~3,907
PassiveOpens ~143
  • 长连接特征:与 1% 测试一致,TIME_WAIT 接近 0

磁盘空间

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

分片服务器资源总结

  • 磁盘 IO 仍是主要瓶颈 — 写 IOPS ~300 k/s,与 1% 持平
  • CPU 调度明显改善 — System Load ~2.94(vs 1% 的 ~70),过载问题消失
  • 内存 30%~50%,余量充足
  • 网络 上传 ~875 KB/s(vs 1% 的 ~341 KB/s),跨分片通信增量显著但未达瓶颈
  • TCP 长连接,健康无堆积

压力服务器(10.15.21.57)

CPU

指标 数值
核心数 32
聚合使用率峰值 95%(14:4014:55)
各节点 CPU 峰值 ~90%(多个实例同时触顶)
System Load 峰值 ~30+
CPU iowait 持续低位
  • 压测期间 CPU 从低位快速攀升至 ~95%,较 1% 测试(~90%)进一步恶化
  • 跨分片交易构造(路由计算、地址解析)消耗更多 CPU

内存

指标 数值
聚合使用率 ~60%~70%
各节点峰值 ~70%
是否 OOM 否
  • 内存使用与 1% 测试基本持平

网络

指标 数值
下载速率峰值 ~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
  • 短连接特征:与 1% 测试一致

磁盘空间

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

压力服务器资源总结

  • CPU 是主要瓶颈 — 峰值 ~95%(vs 1% 的 ~90%),跨分片交易构造开销更大
  • 内存 60%~70%,尚有余量
  • 网络 带宽消耗极低
  • 磁盘 IO 整体可控
  • TCP 短连接模式,ESTABLISHED ~900

资源对比

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

跨分片比例趋势分析

指标 0% 基线 1% 跨分片 5% 跨分片 趋势
校准 TPS ~1,100,000 ~1,056,989 ~1,009,110 每 +1% 跨分片 ≈ -1% TPS
单分片 TPS ~7,000 ~7,054 ~6,727 缓慢下降
成功率 ≥ 99.9% 98.67% 100.00% 5% 反而改善(无掉线)
尾部延迟 无 +3m 24s +4m 48s 线性增长
发送 TPS — 21,417 16,980 下降 20.7%(CPU 受限)
网络上传(分片) — ~341 KB/s ~875 KB/s 增长 156%(跨分片通信)

改进建议

优先级 改进方向 具体措施
P0 优化分片服务器磁盘 IO 写 IOPS ~300 k/s 持续为首要瓶颈,升级 SSD 或优化 WAL/批量写入策略
P1 降低压力客户端 CPU 消耗 CPU 95% 已接近极限,跨分片交易路由计算开销大,优化客户端或增加压力机
P1 排查区块异常 各节点打包/验证/同步异常分散分布,需排查跨分片交易处理流程中的异常源
P2 优化尾部延迟 4m48s 尾部消化时间较长,评估是否可优化交易池消费速率或缩短发送时长
P2 监控跨分片网络开销 上传流量增长 156%,随跨分片比例进一步提升需关注网络是否成为新瓶颈
P3 继续提升跨分片比例测试 建议进行 10%/20% 跨分片压测,验证性能衰减曲线和瓶颈拐点

评论