没有加入分片、并行处理 和 FPGA硬件加速 的前提下,本次共进行了10次测试,取10次结果的平均值,最终结果如下。此测试结果在公链中处于较高水准。
交易数:300万
发送速率:6000/s
发送时间:500s
落账成功率:99.1%
块数:40
处理时间:562s
TPS:5341
峰值:5536
注1:TPS = 成功交易数/(完成落账时间 - 开始发送交易时间)
注2:峰值 即是 系统稳定运行 所能达到的最大TPS,算法为 取落账过程中 中间时段的 一到两分钟之内的落账笔数,除以落账时间。
每个节点为微软云虚拟机,共7个共识节点,硬件配置如下:
名称:Intel(R) Xeon(R) CPU E5-2673 v3
主频:2.40GHz
缓存大小:30720 KB
核数:8
内存:单节点27G
硬盘:固态硬盘,大小50G,读写速率限制不超过25MB/s
软件配置如下:
- 系统信息:ubuntu 16.04.4 LTS
- Go环境:go1.9.3 linux/amd64
Ontology版本为0.8.2,启动命令为:
./ontology --maxtxinblock 120000 --gaslimit 0 --rest --localrpc --disableeventlog --loglevel 2
LoopController.loops=6000,ThreadGroup.num_threads=500;前者代表一个线程发送的交易的次数,后者代表开启的线程数,二者相乘得出的值为发送的交易数,此处为3,000,000
可以看出共发送了3,000,000笔交易,耗时00:08:19,即499秒,则交易发送速度为6012笔/s
目前用7个节点测试,TPS达到了5300以上。
测试过程中,使用不同的发送速率,不同的交易量进行测试,测试结果TPS都达到了5000以上。最终的测试结果,也就是VBFT的峰值TPS,超过了5500,达到5536左右。