Merge pull request #44 from godeamon/fix_build fix build failed and update go version
Merge pull request #44 from godeamon/fix_build
fix build failed and update go version
xbench是xuperchain的压测工具,功能:
与老版本差异:
make
压测执行合约和转账会消耗token,需要确保bank账户(data/bank)中有充足的token:
data/bank
bin/xbench --config=conf/transfer.yaml
注意:修改配置文件中压测节点的 host(ip:port) 更多案例参考:script/xbench.sh
注意:修改配置文件中压测节点的 host(ip:port)
更多案例参考:script/xbench.sh
bin/xbench --config=conf/evidence.yaml
注意:修改xchain配置为nofee模式 设置 data/genesis/xuper.json 中 nofee 字段为 true
注意:修改xchain配置为nofee模式
设置 data/genesis/xuper.json 中 nofee 字段为 true
data/genesis/xuper.json
nofee
true
xbench 执行完后会打印基础指标:响应耗时分位值、tps均值和成功率,更详细的指标通过grafana展示。
XuperChain(打点)=> prometheus(采样、存储)=> grafana(可视化) || ||=> AlertManager(报警)
监控指标:
部署并启动 xchain时,配置开启监控:
metricSwitch: true
部署prometheus和grafana服务,官网下载安装包,启动服务时使用下面的配置文件:
如果需要查看机器指标:
bin |-- generate --生成离线交易工具 `-- xbench --压测工具 conf |-- metric --监控配置:直接导入prometheus+grafana启动服务 | |-- grafana-node.json --机器信息的grafana模板,需要先在机器上部署node_exporter服务 | |-- grafana-xchain.json --xchain服务的grafana模板 | `-- prometheus.yml --采集指标的prometheus配置 |-- contract | |-- counter.yaml --counter合约压测配置 | `-- short_content.yaml --存证合约压测配置 |-- bench.yaml --配置指南详解 |-- evidence.yaml --存证压测配置:desc字段 |-- file.yaml --文件压测配置:发压工具从文件读取交易 |-- sdk.yaml |-- transaction.yaml --转账交易压测配置:not SelectUTXO `-- transfer.yaml --转账交易压测配置 data |-- account --压测账户:5000个账户 | |-- address.dat --账户地址 | `-- mnemonic.dat --账户助记词,通过助记词可以解析账户 |-- bank --银行账户AK | |-- address | |-- private.key | `-- public.key |-- evidence --离线生成存证数据的默认产出路径 `-- transaction --离线生成转账数据的默认产出路径 pb script |-- build.sh --构建工具 `-- xbench.sh --xbench用例
发压过程:
grpc接口 测试用例 ||go0 => DataProvider() => Generate(0) => proto.Message0 => Send =>|| ||go1 => DataProvider() => Generate(1) => proto.Message1 => Send =>|| xbench =>||go2 => DataProvider() => Generate(2) => proto.Message2 => Send =>||=> reporter ||go3 => DataProvider() => Generate(3) => proto.Message3 => Send =>|| ||go4 => DataProvider() => Generate(4) => proto.Message4 => Send =>||
新增grpc接口:实现Provider接口,为ghz发压工具提供压测数据
type Provider interface { DataProvider(*runner.CallData) ([]*dynamic.Message, error) }
新增测试用例:实现Generator接口,提供生成压测数据功能
// 生成压测用例接口 type Generator interface { // 业务初始化 Init() error // 根据并发ID获取构造的交易数据 Generate(id int) (proto.Message, error) }
新增合约:实现Contract接口,构造合约数据
type Contract interface { Deploy(from *account.Account, name string, code []byte, args map[string]string, opts ...xuper.RequestOption) (*xuper.Transaction, error) Invoke(from *account.Account, name, method string, args map[string]string, opts ...xuper.RequestOption) (*xuper.Transaction, error) Query(from *account.Account, name, method string, args map[string]string, opts ...xuper.RequestOption) (*xuper.Transaction, error) }
问题1:构建时遇到missing go.sum错误:
go mod download all
问题2:文件发压报错read tx file error:
read tx file error
ghz Guide
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
xbench
xbench是xuperchain的压测工具,功能:
与老版本差异:
快速开始
压测执行合约和转账会消耗token,需要确保bank账户(
data/bank)中有充足的token:xbench 执行完后会打印基础指标:响应耗时分位值、tps均值和成功率,更详细的指标通过grafana展示。
可视化展示
监控指标:
部署并启动 xchain时,配置开启监控:
metricSwitch: true部署prometheus和grafana服务,官网下载安装包,启动服务时使用下面的配置文件:
如果需要查看机器指标:
支持的压测用例
产出包介绍
进阶
发压过程:
新增grpc接口:实现Provider接口,为ghz发压工具提供压测数据
新增测试用例:实现Generator接口,提供生成压测数据功能
新增合约:实现Contract接口,构造合约数据
FAQ
问题1:构建时遇到missing go.sum错误:
go mod download all问题2:文件发压报错
read tx file error:文档
ghz Guide