写点什么

微服务高效运维,从性能保障谈起

  • 2020-03-30
  • 本文字数:1879 字

    阅读完需:约 6 分钟

微服务高效运维,从性能保障谈起

微服务架构面临的挑战

1.微服务核心价值:3S

2.微服务架构带来的运维挑战

1.单服务流量激增时扩容


2.调用链条变长,调用关系更加复杂


3.微服务拆分导致故障点增多


  • 单服务变更性能影响如何评估?

  • 性能瓶颈在各微服务间漂移,如何做好性能测试?

  • 应对突发流量需求,扩容能否解决问题,如何扩容?

  • 服务实例数量众多,如何收集信息,快速定位性能问题?

华为云微服务性能保障解决方案设计

华为云微服务性能保障解决方案介绍


1.什么是 ServiceMesh

  • 一种基础设施层,服务间通信通过 Service mesh 转发

  • 一种 TCP/IP 之上的网络模型

  • 一个轻量的网络代理,与业务部署在一起

  • 可靠的传输复杂网络拓扑中的服务请求,将服务变为现代的云原生服务


2.华为 ServiceMesh 整体架构

3.管理面服务治理能力


可人工介入,未运行时的 mesher 和侵入式框架提供配置下发


  • 注册中心

  • 下发配置

  • 监控服务

  • 调用引擎

4.数据面支持侵入式与非侵入式 Mesher


即侵入式框架与非侵入式 mesher


  • 注册发现

  • 执行路由策略

  • 负载均衡

  • 透明 TLS 传输

  • 生成监控数据

5.微服务架构的关键性能瓶颈点

  • 1.Mesher 的性能损耗(1ms)

  • 2.单服务的接口性能

  • 3.全链路调用性能

  • 4.服务伸缩能力


6.关于性能我们需要做哪些


  • 开展分层验证,掌握服务的能力基线

  • 1.单服务接口测试

  • 验证单服务的各个接口能力基线以及组合接口的能力基线

  • 2.全链路测试

  • 验证全链路场景以及多链路组合场景的性能,优化链路中性能不足的服务

  • 3.伸缩能力验证

  • 验证单服务的水平扩容能力,验证既定模型下的多链路组合场景的资源模型

  • 性能测试服务化,提升验证效率



  • 关键设计 1:模块化管理,事务灵活组合与复用

  • 抽象性能测试所需的元素并模块化,实现灵活复用和配置修改



  • 关键设计 2:可扩展的高性能执行集群


性能测试实施策略

1.关键度量指标

  • 制定测试目标,要求测试指标结果达到用户预期目标。

  • 指标数据一般包括并发用户数、Response Time、TPS、通过率等。

  • 系统的吞吐量要和响应时间关联(SLA),如至少 90%以上的请求在正常合理响应时间内。


2.全链路调优测试策略

性能是一个逐步提升的过程,测试过程中需要找到扩容的模型,从不足 50 的 TPS 提升至万级


3.测试报告分析解读

如何从测试工具侧快速分析被测对象可能存在的问题


  • 存在部分响应超时:

  • a)服务器繁忙,如某个服务节点 CPU 利用率高

  • b)网络 IO 超过 VM/EIP 带宽

  • c)等待后端微服务、数据库的超时时间设置过长

  • 运行一段时间后全部响应超时或者检查点校验不通过:

  • a)大压力导致系统中某个微服务奔溃

  • b)后端数据库无响应

  • TPS 未随着并发数增长而上升:

  • a)系统性能到达瓶颈,持续并发加压过程中响应时延增加(可观察响应区间统计)

  • b)可通过进一步加压是否会出现非正常响应验证

  • TP90 响应时延较短,TP99 时延高:

  • a)系统性能接近瓶颈

  • b)可通过进一步加压是否会出现非正常响应验证




4.一些常见的性能优化手段

  • 1.扩容,链路中的某一应用可能出现 cpu 使用率较高或者连接池资源不够用(rpc、jdbc、redis 连接池等)但本身对于拿到连接的请求处理又很快,这一类需要横向扩展资源。

  • 2.应用逻辑优化,比如存在慢 sql、 逻辑的不合理如调用 db 或者 redis 次数过多、没有做读写分离造成写库压力过大。

  • 3.超时时间的合理设置,对于应用之间的 rpc 调用或者应用与其他基础组件之间的调用,均需要设置合理的超时时间,否则过长的等待将造成整个链路的故障。

  • 4.缓存的应用,请求尽可能从前端返回,而不是每一个都要让后端应用处理后再返回,减轻后端应用及数据库压力,提高系统吞吐能力。

  • 5.限流,对于超出承载能力的 QPS 或并发,可以进行拦截并直接返回提示页面。

  • 6.降级,对于非核心链路上的应用,允许故障关闭而不影响核心链路

  • 7.扩容和优化也是有限度的,在评估容量内,保障核心交易链路正常是重中之重,对于非核心功能模块考虑降级场景

5.面对复杂网络架构如何做性能测试

一个典型的互联网平台:突发事件高流量突发,如瞬间由百级用户增长到万级



对于网络架构复杂的应用,可以拆分压力的入口点,进行分段验证,屏蔽对应网元带来的性能影响,如分别从最外端的①CDN 入口、②中间的 ELB、③业务层,分别做测试,验证复杂网络架构情况下,各网元的瓶颈和影响

6.应用内部的性能瓶颈如何提升定位效率?

1.资源、应用、业务一站式监控与分析


立体运维全景图



2.应用拓扑与异常展示、故障下钻


  • 应用发现与依赖关系:非侵入采集应用 KPI 数据,并通过服务间接口自动生成依赖关系,展现应用拓扑。

  • 应用 KPI 汇聚:微服务实例汇聚到应用(数字表示 XX 个实例),KPI 数据自动汇聚到应用。

  • 调用链跟踪:下钻获取应用调用链,定位到具体出错方法



本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/uoSkaHDSFb3tTYt0sbBp0Q


2020-03-30 15:021066

评论

发布
暂无评论
发现更多内容

易周金融 | Q1保险行业活跃人数8688.67万人 19家支付机构牌照被注销

易观分析

金融 银行

浅识k8s中的准入控制器

火线安全

云安全 云安全技术 云安全攻防 云安全研究

实时云交互如何助力教育行业发展

3DCAT实时渲染

实时云渲染 云交互

【一库】vueuse:我不许身为vuer,你的工具集只有lodash!

摸鱼的春哥

Vue 前端 Vue3 7月月更

31年前的Beyond演唱会,是如何超清修复的?

字节跳动视频云技术团队

小程序直播 + 电商,想做新零售电商就用它吧!

CRMEB

结合案例:Flink框架中的最底层API(ProcessFunction)用法

百思不得小赵

大数据 flink 7月月更

分布式BASE理论

源字节1号

软件开发 后端开发

Lombok使用引发的血案

技术小生

7月月更

程序员的焦虑

沃德

程序员 7月月更

Node の MongoDB安装

空城机

mongodb Node 7月月更

产品好不好,谁说了算?Sonar提出分析的性能指标,帮助您轻松判断产品性能及表现

龙智—DevSecOps解决方案

SpringSecurity会话管理

急需上岸的小谢

7月月更

对话龙智高级咨询顾问、Atlassian认证专家叶燕秀:Atlassian产品进入后Server时代,中国用户应当何去何从?

龙智—DevSecOps解决方案

Server Atlassian Jira DC版

Python|字符串操作

AXYZdong

7月月更

实战:fabric 用户证书吊销操作流程

BSN研习社

fabric

洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通

洞见科技

数据安全 隐私计算 数据隐私计算

一个数据人对领域模型理解与深入

松子(李博源)

大数据 领域模型 模型设计

回顾V神 Rollups 神作,详解以太坊为何需要二层扩展方案

TinTinLand

区块链 科技

华为云数据库DDS产品深度赋能

程思扬

数据库 华为云 DDS

CSS 文本阴影 text-shadow 悬停效果

南城FE

前端 动画 HTML5, CSS3 7月月更 hover

程序员转方向

沃德

程序员 7月月更

基于STM32+华为云IOT设计的酒驾监控系统

DS小龙哥

7月月更

国内酒店交易DDD应用与实践——代码篇

Qunar技术沙龙

架构

教你学c++算法题中最头疼的动态规划

KEY.L

7月月更

Helix Swarm中文包发布,Perforce进一步提升中国用户体验

龙智—DevSecOps解决方案

perforce Helix Core Helix Swarm

【Docker 那些事儿】容器为什么傲娇?全靠镜像撑腰

Albert Edison

7月月更

室外LED屏幕防水吗?

Dylan

LED显示屏 室外显示屏

2022年中国移动阅读市场年度综合分析

易观分析

移动阅读

都在说DevOps,你真正了解它吗?

龙智—DevSecOps解决方案

DevOps 运维 开发

抓到Dubbo异步调用的小BUG,再送你一个贡献开源代码的机会

捉虫大师

开源 dubbo 问题排查 7月月更

微服务高效运维,从性能保障谈起_语言 & 开发_华为云产品与解决方案_InfoQ精选文章