公告丨aelf测试网TPS数据首次公布:14968次/秒
aelf技术团队已于2018年8月8日公布测试网数据,其中包括集群配置,以及TPS等相关数据。
*此次测试数据为初始数据,不代表最终数据。
未来,数据会随着整个网络的迭代,以及其他功能模块的优化而更新。在测试过程中,也欢迎广大的开发者用户加入到aelf的测试当中,aelf团队也将不断完善技术内容,做出一个可以支持大规模商用的区块链网络。接下来,向大家展示测试的全部过程及结果,并为大家带来数据测试的教程。
介绍
• aelf两个重要概念:主链+多侧链;每个节点都运行在集群中,通过并行计算提升TPS,所以并行计算模块的性能对整体至关重要,本次测试是针对并行计算模块做的测试。
• aelf采用Akka并行框架
关键词
• 服务器:在aws上创建的虚拟机。
• Actor:最小的并行计算单元。
• Worker:运行在服务器器上进程,为Actor的载体。
测试描述(⼀次完整转账过程)
• 转账合约实现的功能:从A帐号读取余额,从B帐号读取余额;A帐号减去转账金额,B帐号加上转账金额(包括两次读,两次写)。
• 通过benchmark程序首先部署转账合约,初始化测试数据,然后模拟批量的交易,执行并行分组,调用分布在各个服务器上的worker执行交易并返回并验证结果。
测试计划
• 单机模式:单worker+单实例数据库。
• 集群模式:多worker+单实例数据库。
• 集群模式:多worker+数据库集群。
测试环境
• 服务器:aws c5.2xlarge(8vCPU+16G)
• 网络:10G(默认)
• Redis:版本4.0.10
• Twemproxy:版本0.4.1
操作步骤
文档添加至GitHub Wiki中
GitHub链接:
https://github.com/AElfProject/AElf/wiki/Concurrency-Benchmark-Manual
测试结果(TPS)
• 测试一
(TPS:10392)
每台worker服务器2个Worker实例,每个worker实例16个actor,Redis为单实例。
• 服务器及角色
Bechmark 1台服务器
Worker 4台服务器
Redis 1台服务器
• 测试二
(TPS:14968)
每台worker服务器4个Worker实例,每个Worker实例16个actor,Redis使用twemproxy构建集群(2个server共8个实例)。
• 服务器及角色
Bechmark 1台服务器
Worker 4台服务器
Redis 2台服务器
测试结论
• 验证了单机情况下的并行执行能力。
• 验证了集群环境(有网络影响)下具备可延展性。
• 由于本次测试属于阶段性,仅对并行计算及延展性做了验证。并未对更高配置的服务器做测试,在更高的服务器配置下预计数据库会有更优秀的表现。
后期优化思路
• 处理极大数量的Transaction时(比如在侧链环境下,8万交易分出2000组时需要大约700ms),group分组策略需要进一步优化,以减少分组所消耗的时间
• Router动态分配能力(测试使用了系统的路由策略:round- robin-group,生产环境并非最优策略)
• 并行执行各个模块健康状况监控(比如Mailbox),便于了解整个执行过程
如何参与测试
如您在测试过程中有任何宝贵的建议,请联系aelf技术团队,想要参与到测试工作的开发者朋友们,可以通过下方邮箱与aelf技术团队取得联系:
技术团队联系方式:[email protected]
slack测试网交流(# testnet-feedback):
https://aelfblockchain.slack.com/messages/CBHAYR36K