gitee.com/woood2/luca@v1.0.4/test/grpc.md (about)

     1  
     2  针对 checkPerm 进行一些简单的性能测试
     3  
     4  checkPerm 接口包含的主要耗时操作
     5  - 鉴权查mysql,用了缓存,但没有开启防雪崩模式
     6  - 内部调用 checkToken
     7  - zipkin 采用 http.NewReporter
     8  
     9  耗时检测工具
    10  - zipkin(没有采用 reporter.NewNoopReporter 时)
    11  - prometheus
    12  
    13  完整调用 checkPerm
    14  - 16ms ~ 80ms(中位数,耗时不算低)
    15  
    16  zipkin 改用 reporter.NewNoopReporter
    17  - 经过多轮测试,未发现zipkin传输对接口整体耗时的确切关系
    18  
    19  注释内部调用 checkToken
    20  - 16ms(内部嵌套的gRPC调用,耗时较小)
    21  
    22  关闭鉴权查mysql
    23  - 17us
    24  
    25  并发 1000(未关闭鉴权查mysql)
    26  - 发生慢查询 0.9=1.3s,0.99=2.2s,大量 hystrix timeout
    27  - hystrix 有助于间接保护下游的mysql,但是根据prometheus统计,server接口执行完了
    28  
    29  并发 1w,关闭鉴权后
    30  - hystrix发生开路,因为MaxConcurrentRequests=1000
    31  - 改为10000后,没有开路
    32  - 所有请求几乎在1s内完成,相当于gRPC的hello world
    33  
    34  并发 2w,测试checkToken,类似于hello world
    35  - 1.1 s内完成