brpc/docs/cn/case_ubrpc.md
2022-12-14 20:13:26 +08:00

46 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 背景
云平台部把使用ubrpc的模块改造为使用brpc。由于使用了mcpack2pb的转换功能这个模块既能被老的ubrpc client访问也可以通过protobuf类的协议访问baidu_stdsofa_pbrpc等
原有使用43台机器对ubrpc也有富余brpc使用3台机器即可此时访问redis的io达到瓶颈。当前流量4w qps支持流量增长考虑跨机房冗余避免redis和vip瓶颈brpc实际使用8台机器提供服务。
brpc改造后的connecter收益明显可以用较少的机器提供更优质的服务。收益分3个方面
# 相同配置的机器qps和latency的比较
通过逐渐缩容不断增加connecter的压力获得单机qps和latency的对应数据如下
![img](../images/ubrpc_compare_1.png)
机器配置cpu: 24 Intel(R) Xeon(R) CPU E5645 @ 2.40GHz || mem: 64G
混布情况同机部署了逻辑层2.0/3.0和C逻辑层均有流量
图中可以看到随着压力的增大:
* brpc的延时增加微乎其微提供了较为一致的延时体验
* ubrpc的延时快速增大到了6000~8000qps的时候出现*queue full*,服务不可用。
# 不同配置机器qps和延时的比较
qps固定为6500观察延时。
| 机器名称 | 略 | 略 |
| ----- | ---------------------------------------- | ---------------------------------------- |
| cpu | 24 Intel(R) Xeon(R) CPU E5645 @ 2.40GHz | 24 Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz |
| ubrpc | 8363.46us | 12649.5us |
| brpc | 3364.66us | 3382.15us |
有此可见:
* ubrpc在不同配置下性能表现差异大在配置较低的机器下表现较差。
* brpc表现的比ubrpc好在较低配置的机器上也能有好的表现因机器不同带来的差异不大。
# 相同配置机器idle分布的比较
机器配置cpu 24 Intel(R) Xeon(R) CPU E5645 @ 2.40GHz || mem64G
![img](../images/ubrpc_compare_2.png)
在线上缩容 不断增大压力过程中:
* ubrpc cpu idle分布在35%~60%在55%最集中最低30%
* brpc cpu idle分布在60%~85%在75%最集中最低50% brpc比ubrpc对cpu的消耗低。