栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

一次全链路压测-总结

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一次全链路压测-总结

背景:公司接到私有化项目部署,由于没有各个微服务的真实能力,往往项目经理拉会开发评估需要的资源,但是没有测试数据支撑,导致评估的资源往往到线上真实使用量高太多,客户经常抱怨给的服务器资源使用的并不多,所以组织这次压测,目的是得到各个微服务的能力及全链路合理的资源配比(以实时在线通话2000为例)。

什么阶段的公司搞全链路压测

    微服务的架构。
    需要架构组,得有Mtrace的这种微服务RPC消息跟踪体系架构,能改中间件。
    各部门能配合全链路压测调试及部署,运维的机器资源部署。
    简单性能测试要通过,即单点的性能测试要没问题。
    有更高的技术追求。

什么时间搞全链路压测

    压力小的白天就行,要错过高峰期,这也是得益于数据隔离,服务器隔离。
    压力大的一般凌晨进行,要错过高峰期。

谁来搞

肯定不是测试,也不是一般的性能测试工程师和测试开发工程师,基本上是一个研发团队在搞。

据说美团的压测平台前身也是测试开发工程师搞的,推广的也不错,在美团趟出了一条压测的路,但是存在了不少有待改进的地方。后来种种原因,平台移交给了开发团队,现在看起来,平台的压测性能、可用性等各方面有了很大的提升。不是说测试开发的同学做不了,而是效率和速度确实还是有差距的。开发同学的效率和速度就是特别大的优势,能加班,可以快速的让产品成型并且快速迭代。
 

梳理服务

1.梳理某项目所有微服务,服务架构,实现方式,调用关系,线上环境的请求配比(后续做测试数据、编写测试脚本等需要);

2.梳理服务间调用用到的协议,为后续压测工具选型最准备,本次压测设计到freeswitch、unimrcp、http、grpc协议,由于市面上没有哪款压测工具支撑上述各种协议,最终决定用locust压测,最大好处,能支持二次开发,可以自我实现各种需求

准备环境

1.根据需求量和原有的数据大概评估一下服务器,分析哪些服务耗内存,哪些耗cpu....

2.部署相关服务,监控(grafana + prometheus),部署需要的各种exporter (服务器、服务、中间件、locust等),由于locust本身压测数据不是持久化,prometheus提供了exporter来收集locust压测数据后展示到grafana-参看以往的博文

3.6台服务器、近50个微服务

压测策略

1.先压出单个服务的能力(不限制QOS,被压服务和压测脚本单独部署)

2.根据单个服务的能力和各个微服务的QPS的比率关系,合理配比副本数

3.全链路压测,对资源使用进行微调

压测过程

1.由于压测涉及到大量的音频传输,先测试压测服务器的io读写速度

2.从最底层服务开始压测服务能力,不限制QOS,加大压力看QPS、响应时间、内存、cpu、磁盘io、网络io、各连接数...的使用情况,找到压力拐点为止。

3.压测次底层服务,优先增大依赖的服务能力(通过副本数或资源增大等),有些微服务只做了代理,能力太强,考虑用mock服务代替后面依赖的微服务(mock服务能力要考虑后面服务的真实能力,随机sleep一段时间)

4.重复2-3步骤,压出online核心服务的处理能力。

5.根据单服务的能力,分析2000在线通话对各个服务的资源使用情况,需要考虑全链路的压测场景,单位时间内几轮对话对请求影响比较大

遇到问题

1.测试发现,当压力上去time_wait的数量会持续增大,同时释放的速度又小于新创建连接的速度,就是导致time_wait状态持续过多,这样会导致部分连接无法创建,现象表现为电话打不通,通过修改tcp_max_tw_buckets=50000,tcp_fin_timeout=10s两个系统参数解决上述问题

2.有几个重要服务要占用大量rtp端口,当部署到同一台服务器上,会导致资源抢占厉害,分配的端口也可能给sipp和一些系统服务产生冲突导致无法注册,所以通过调整部署方式和可用端口段解决上面问题

3.压力上去后,某些中间件连接数不够,服务异常后因为无法连接而重启失败

4.某些微服务也是采用了容器里的默认参数,调整后能力大幅提升

5.ELK占用大量资源。。。。

6.。。。

压测结论

1.部署方式很重要

2.要善于结合系统参数进行调优(参考How Can I View and Modify Kernel Parameters of a Linux ECS?_Elastic Cloud Server_FAQs_Network Configurations_Others_HUAWEI CLOUD)

3待补充。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911354.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号