github.com/polarismesh/polaris@v1.17.8/test/benchmark/grpc/client/discovery_benchmark-zh.md (about)

     1  # PolarisMesh服务发现性能测试报告
     2  
     3  ## 测试目的
     4  
     5  了解PolarisMesh的服务发现性能负载和容量,帮助用户更快的运用评估PolarisMesh系统负荷,协助用户进行资源选型。
     6  
     7  ## 测试工具
     8  
     9  我们使用开源的ghz工具进行压测。测试工具地址:https://github.com/bojand/ghz/releases/tag/v0.105.0
    10  
    11  ## 测试场景
    12  
    13  - 验证实例注册的性能
    14  - 验证实例心跳上报的性能
    15  - 验证实例查询的性能
    16  - 验证实例反注册的性能
    17  
    18  ## 测试环境
    19  
    20  ### 规格1
    21  
    22  | 组件    | 参数                              |
    23  | ------- | --------------------------------- |
    24  | polaris | CPU 4核,内存32G,3节点           |
    25  | 数据库  | CPU 4核,内存8G,存储100G,双节点 |
    26  | redis   | xxx                               |
    27  
    28  ### 规格2
    29  
    30  | 组件    | 参数                               |
    31  | ------- | ---------------------------------- |
    32  | polaris | CPU 4核,内存32G,6节点            |
    33  | 数据库  | CPU 8核,内存16G,存储100G,双节点 |
    34  | redis   | xxx                                |
    35  
    36  ## 测试数据
    37  
    38  ### 实例注册
    39  
    40  - 测试接口:
    41  
    42  ```go
    43  package v1;
    44  
    45  service PolarisGRPC {
    46   // 被调方注册服务实例
    47   rpc RegisterInstance(Instance) returns(Response) {}
    48  }
    49  ```
    50  
    51  - 测试命令:ghz xxxx
    52  
    53  #### 规格1
    54  
    55  | 机器*并发数 | 实例数 | TPS | RT(ms) | 最小RT(ms) | 最大RT(ms) | polaris负载 | 数据库负载 | redis负载 |
    56  | ----------- | ------ | --- | ------ | ---------- | ---------- | ----------- | ---------- | --------- |
    57  | 1 * 100     |        |     |        |            |            |             |            |           |
    58  | 2 * 100     |        |     |        |            |            |             |            |           |
    59  | 4 * 100     |        |     |        |            |            |             |            |           |
    60  | 8 * 100     |        |     |        |            |            |             |            |           |
    61  
    62  #### 规格2
    63  
    64  | 机器*并发数 | 实例数 | TPS | RT(ms) | 最小RT(ms) | 最大RT(ms) | polaris负载 | 数据库负载 | redis负载 |
    65  | ----------- | ------ | --- | ------ | ---------- | ---------- | ----------- | ---------- | --------- |
    66  | 1 * 100     |        |     |        |            |            |             |            |           |
    67  | 2 * 100     |        |     |        |            |            |             |            |           |
    68  | 4 * 100     |        |     |        |            |            |             |            |           |
    69  | 8 * 100     |        |     |        |            |            |             |            |           |
    70  
    71  ### 实例心跳上报
    72  
    73  - 测试接口:
    74  
    75  ```go
    76  package v1;
    77  
    78  service PolarisGRPC {
    79    // 被调方上报心跳
    80    rpc Heartbeat(Instance) returns(Response) {}
    81  }
    82  ```
    83  
    84  - 测试命令:
    85  
    86  ### 实例查询
    87  
    88  - 测试接口:
    89  
    90  ```go
    91  package v1;
    92  
    93  service PolarisGRPC {
    94    // 统一发现接口
    95    rpc Discover(stream DiscoverRequest) returns(stream DiscoverResponse) {}
    96  }
    97  ```
    98  
    99  - 测试命令:
   100  
   101  ### 实例反注册
   102  
   103  - 测试接口:
   104  
   105  ```go
   106  package v1;
   107  
   108  service PolarisGRPC {
   109    // 被调方反注册服务实例
   110    rpc DeregisterInstance(Instance) returns(Response) {}
   111  }
   112  ```
   113  
   114  - 测试命令: