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 - 测试命令: