zoukankan      html  css  js  c++  java
  • fabric orderer的sample_clients编译以及性能测试

    借助源码包中的sample_clients

    • 单独编译出orderer二进制
    • 运行测试
      • 启动orderer服务
      • 分别对orderer的rpc服务发请求

    这里我们使用的是centOS,避免了windows的一些配置问题

    ps:实质上从源码上看orderer的broadcast和deliver都是需要别人请求才响应,所以我们可以模拟client发送信息到orderer排序,模拟peer向orderer发送请求区块的信息,至于出块等操作我们就直接可以利用配置。

    测试方案

    • 对运行的orderer的两个服务进行模拟请求获取性能分析报告,根据TOP等来看系统的整体性能

    • raft的容错测试下的性能分析报告
      // TODO

    测试目的

    借助工具来看orderer的接受消息和发送区块主要的性能损耗点

    操作步骤

    • 编译运行orderer节点,注意开启pprof服务
    • 进入broadcast_msg,发起broadcast请求
    go run client.go
    
    • 进入deliver_stdout,发起deliver请求
    go run client.go
    
    • 通过改变各种配置参数和client.go里的请求代码进行调试分析

    分析文件

    链接:https://pan.baidu.com/s/1klJh_4ddoiG3mr0326qiPQ
    提取码:vdxu

    (2是broadcast,5是deliver)

    Broadcast

    Graph

    Top

    Flame Graph

    Peek

    Source

    Deliver

    Graph

    Top

    Flame Graph

    Peek

    Source

    结论

    • 大量日志的写操作是需要消耗高性能的
    • 对于区块的Next请求是orderer的deliver服务的主要消耗点
    • 写区块这个操作虽然不是频繁操作但也是高耗能操作
    • IO操作是高并发的一处高消耗点
    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    最大流问题的几种经典解法综述
    有上下界的网络流
    hiho一下
    poj 1018
    状压dp
    hdu 1043
    Poj1015
    7.14
    sgu 128
    (zhuan)
  • 原文地址:https://www.cnblogs.com/CherryTab/p/13796244.html
Copyright © 2011-2022 走看看