当前位置: 首页 > news >正文

手机可以搭建网站吗北京网站建设 义创

手机可以搭建网站吗,北京网站建设 义创,系统优化大师免费版,免费网络电话排行简介#xff1a;本次课程主要分为三大部分#xff0c;首先将介绍慢调用的危害以及常见的原因#xff1b;其次介绍慢调用的分析方法以及最佳实践#xff1b;最后将通过几个案例来去演示一下慢调用的分析过程。 作者#xff1a;李煌东 大家好#xff0c;我是阿里云的李煌…简介本次课程主要分为三大部分首先将介绍慢调用的危害以及常见的原因其次介绍慢调用的分析方法以及最佳实践最后将通过几个案例来去演示一下慢调用的分析过程。 作者李煌东 大家好我是阿里云的李煌东。今天我为大家分享 Kubernetes 监测公开课第四节如何使用 Kubernetes 监测定位慢调用。今天的课程主要分为三大部分首先我会介绍一下慢调用的危害以及常见的原因其次我会介绍慢调用的分析方法以及最佳实践最后通过几个案例来去演示一下慢调用的分析过程。 慢调用危害及常见原因 在开发软件过程中慢调用是非常常见的异常。慢调用可能带来的危害包括 前端业务维度首先慢调用可能会引起前端加载慢的问题前端加载慢可能会进一步导致应用卸载率高进而影响品牌的口碑。项目交付的维度由于接口慢导致达不到 SLO进而导致项目延期。业务架构稳定性当接口调用慢时非常容易引起超时当其他业务服务都依赖这个接口那么就会引发大量重试进而导致资源耗尽最终导致部分服务或者整个服务不可用的雪崩的现象。 所以看似一个无关痛痒的慢调用可能隐藏着巨大风险我们应该引起警惕。对慢调用最好都不要去忽视它应该尽可能去分析其背后的原因从而进行风险控制。 产生慢调用的原因有哪些产生慢调用的原因是千千万万的归结起来有五个常见原因。 第一个是资源使用率过高问题比如说 CPU 内存、磁盘、网卡等等。当这些使用率过高的时候非常容易引起服务慢。第二个是代码设计的问题通常来说如果 SQL 它关联了很多表做了很多表那么会非常影响 SQL 执行的性能。第三个是依赖问题服务自身没有问题但调用下游服务时下游返回慢自身服务处于等待状态也会导致服务慢调用的情况。第四个是设计问题比如说海量数据的表非常大亿级别数据查询没有分库分表那么就会非常容易引起慢查询。类似的情况还有耗时的操作没有做缓存。第五个是网络方面问题比如说跨洲调用跨洲调用是物理距离太大了导致往返时间比较长进而导致慢调用。或者两点之间的网络性能可能比较差。比如说有丢包重传率重传率高的问题。 今天我们的例子围绕这五个方面我们一起来看一下。 定位慢调用一般来说有什么样的步骤或者说有什么样的最佳实践呢我这里总结的为三个方面黄金信号 资源指标 全局架构。  我们先来看一下黄金信号。首先黄金信号是出自谷歌 SRE 圣经里面的 Site Reliability Engineering 一书。用来表征系统是否健康的最小指标的集合这其中包括 延时--用来描述系统执行请求花费的时间。常见指标包括平均响应时间P90/P95/P99 这些分位数这些指标能够很好的表征这个系统对外响应的快还是慢是比较直观的。流量--用来表征服务繁忙程度典型的指标有 QPS、TPS。错误--也就是我们常见的类似于协议里 HTTP 协议里面的 500、400 这些通常如果错误很多的话说明可能已经出现问题了。饱和度--就是资源水位通常来说接近饱和的服务比较容易出现问题比如说磁盘满了导致日志没办法写入进而导致服务响应。典型的那些资源有 CPU、 内存、磁盘、队列长度、连接数等等。 除了黄金信号我们还需要关注一个资源指标。著名的性能分析大神 Brandan Gregg 在他的性能分析方法论文章中提到一个 USE 方法。USE 方法是从资源角度进行分析它是对于每一个资源去检查 utilization使用率saturation 饱和度error错误 合起来就是 USE 了检查这三项基本上能够解决 80% 的服务问题而你只需要花费 5% 的时间。  前面有了黄金信号、资源指标之后我们还需要关注什么正如 Branda 在方法论里面提到的“我们不能只见树木不见森林”。诸葛亮也说过“不谋全局者不足以谋一域”。我们应该把系统架构画出来从全局去看性能问题而不只是看某个资源、某个服务。把所有东西进行综合考虑识别出瓶颈所在通过设计方法系统性解决问题这也是一种更优的方法。所以我们需要黄金信号、资源指标以及全局架构这种组合。  慢调用最佳实践 接下来我会讲三个案例第一个是节点 CPU 打满问题这也是典型的资源问题导致的服务慢的问题即服务自身的资源导致的问题。第二个是依赖的服务中间件慢调用的问题。第三个是网络性能差。第一个案例是判断服务自身有没有问题第二个案例是判断下游服务的问题第三个就是判断自身跟服务之间的网络性能问题。 我们以一个电商应用举例。首先流量入口是阿里云 SLB然后流量进入到微服务体系中微服务里面我们通过网关去接收所有流量然后网关会把流量打到对应的内部服务里面比如说 ProductService、CartService、 PaymentService 这些。下面我们依赖了一些中间件比如说 Redis 、MySQL 等等这整个架构我们会使用阿里云的 ARMS 的 Kubernetes 监测产品来去监测整个架构。故障注入方面我们会通过 chaosblade 去注入诸如 CPU 打满、网络异常等不同类型的异常。 案例一节点 CPU 打满问题 节点 CPU 打满会带来什么样的问题呢节点 CPU 打满之后上面的 Pod 可能没办法申请到更多 CPU导致里面的线程都处于等待调度的状态进而导致慢调用。除了节点上面我们这除了 CPU 之外还有一些像磁盘、Memory 等等资源。 接下来我们看一下 CPU 在 Kubernetes 的集群里面的一些特点。首先CPU 是可压缩的资源在 Kubernetes 里面我们右边看这些配置有几个常见配置比如说 RequestsRequests 是主要是用来做调度的。Limits 是用来去做运行时的一个限制超过这个 Limits它就会被限流。所以我们的实验原理是说对节点这个 CPU 进行打满注入导致 Pod 没办法申请到更多的内存进而导致服务变慢。 在正式开始前我们通过拓扑图对关键链路进行识别在上面配置一些告警。比如说网关及支付链路我们会配置平均响应时间 P90 以及慢调用等告警。然后配置完之后我这边会注入一个节点 CPU 打满这么一个故障。那这个节点选的是网关的节点大概等待五分钟之后我们就可以收到告警就是第二步里面的那个验证告警的有效性。 接下来我们进入根因定位。首先我们进入到查看到网关的应用详情里面。第一步是查看相关黄金信号黄金信号就是响应时间我们看到响应时间非常直观显示了突增下面是慢调用数慢调用数是有一千多个慢调用数突然增多了P90/P95 出现了明显上升并超过一秒说明整个服务也变慢了。  接下来我们需要分析资源指标在 Pod CPU 使用量图表中可以看到这段时间 Pod 使用量上升很快这个过程说明需要向宿主机或者节点申请更多内存。我们进一步看一下节点或者宿主机的 CPU 使用率是怎么样的我们看到这段时间使用率接近百分之百Pod 申请不了更多 CPU进一步导致服务慢了进而导致平均响应时间大量增长。  定位到问题之后我们可以想想具体解决方案。通过 CPU 使用率配置弹性伸缩。因为我们不知道相关流量或者资源不知道什么时候突然就不够。那么应对这种场景最好的办法就是给资源配置弹性伸缩为节点配置弹性伸缩主要是为了确保在负载上升时资源能够动态扩容。为了给应用配置弹性伸缩我们可以给比如 CPU 指标配置一个增加副本数的一个扩容动作来去分担流量这里面我们可以配置成最大副本数为十最小副本数为三等等。  效果如下注入 CPU 慢故障时慢调用会上升上升完成之后会触发到弹性伸缩那就是 CPU 的使用率超过阈值了如 70%。那么它就会自动扩出一些副本去分担这些流量我们可以看到慢调用数逐步下降直到消失说明我们的那个弹性伸缩起到作用了。 案例二依赖的服务中间件慢调用的问题 接下来我们看第二个案例。首先介绍一下准备工作左边这边图我们可以看到网关进来掉了两个下游服务一个是 MySQL 一个是 ProductService所以在网关上直接配置一个大于一秒的告警平均响应时间 P99 大于一秒的告警。第二步我们看这个 Product 也是在关键链路上面我给它配一个 P99 大于一秒的告警第三个是 MySQL 也配一个大于一秒的告警配完之后我会在 Product 这个服务上面去注入一个 MySQL 慢查询的故障大概等到两分钟之后我们就可以看到陆续告警就触发出来了网关跟 Product 上面都有一个红点跟一个灰色的点这一点其实就是报出来的故障报出的告警事件Kubernetes 监测会把这个告警事件通过命名空间应用自动的 match 到这个节点上面所以能够一眼的看出哪些服务、哪些应用是异常的这样能够快速定位出问题所在。我们现在收到告警了之后下一步去进行一个根因定位。 首先说一下这个更新定位的流程告警驱动因为预防总比补救要好所以我们是采用先配置告警再去更新定位这么一个过程。然后我们会用拓扑来去进行一个可视化分析因为拓扑是能够去进行架构感知、分析上下游可以进行可视化分析。当收到告警后可以针对告警看对应的一个应用发生了什么情况。第一个我们看那个网关我们看到网关的那个 P99 上升到 1800 毫秒以上所以触发了一个大于 1 秒阈值的这么一个告警。我们可以也可以看到几个分位数都是上涨的然后我们进一步看另外一个发生告警的服务也就是 Product点开这个节点之后我们可以从那个 panel 上面看到这个 Product 也发生了一个慢调用P99、P95 都已经不同程度的发生慢调用大都是大于一秒的然后这时候我们是可以去看一下 Product 的资源使用情况的因为可能 Product 本身有问题。我们查看 Product 的下游一个是 Nacos一个是 MySQL我们看 MySQL 的这个交互的时候就发现这里面有大量的一个慢调用然后看到这些慢调用之后点击这些明细去下钻看一下它调用的时候发生了什么事情我们进一步看这些数据之后就会发现 SQL 里面 Product 调用 Mysql 的时候执行了一条很复杂Join 了多张表的一个 SQL 的语句。从调用 Trace 看到耗时非常大这样的话我们就能够定位到基本上是这条 SQL 产生的一个问题了。 总结一下我们整个流程首先我们会通过架构感知去识别关键的路径然后在这个关键路径上去配置告警去主动发现异常。发现异常之后我们通过应用自身的资源指标黄金信号等来去定位问题。如果自身没有问题那我们就可往下追踪下游我们去看下游的资源指标用这么一种方法去定位慢调用的一个依赖的问题中间件调用的问题。 案例三网络性能差 接下来我们讲最后一个例子就是网络性能差Kubernetes 的网络架构是比较复杂的容器之间的通信、Pod 之间的通信、Pod 与服务之间通信、外部与服务之间的通信等等。所以复杂度是比较高的学习的曲线也比较陡峭这给定位问题带来一定困难。那么我们怎么去应对这种情况呢如果采用关键网络环境指标去发现网络异常有哪些关键环境指标呢首先一个是速率跟带宽第二个是吞吐量第三个是延时第四个是 RTT。  首先我会这边配置一个告警注入 MySQL 所在节点丢包率高这个故障等待几分钟之后我们会收到慢调用告警网关跟 Product 的响应时间都发生了大于一秒的告警。接下来我们看一下根因定位我们看到网关发生了慢调用 P99 的响应时间暴增然后看 Product 也发生了平均响应时间突增的问题那就是刚才的服务慢调用了然后我们进一步看 Product 的下游依赖了 Nacos、Redis 、MySQL  这三个服务可以发现慢调用是比较明显的然后我们查看它的下游时就发现了 Product 调 MySQL 的时候发生了比较严重的慢调用同时它的 RTT 跟重传现象也很明显。  正常情况下 RTT 是很平稳的。它反映的是上下游之间的往返的时间如果它都上涨非常快基本上可以认定为它是网络问题所以说可以看到就是这里面有三条从网关、Product、MySQL从这里我们可以总结到就是通过这种识别关键路径然后在拓扑上面去配置告警的这种方法可以非常快的去定位问题不需要去查证很多散落在各个地方的信息。我们只需要去在这条拓扑上面去树藤摸瓜的去查看对应的性能指标网络指标等等快速定位到问题所在。所以这就是我们黄金信号 资源指标 资源拓扑定位像慢调用这种异常的最佳实践。  最后总结下本次最佳实践 1、  通过默认告警主动发现异常默认告警模板涵盖 RED常见资源类型指标。除了默认下发的告警规则用户还可以基于模板定制化配置。 2、  通过黄金信号和资源指标发现、定位异常同时 Trace 配合下钻定位根因。 3、  通过拓扑图做上下游分析、依赖分析、架构感知有利于从全局视角审视架构从而得到最优解做到持续改善构建更稳定的系统。  原文链接 本文为阿里云原创内容未经允许不得转载。
http://wiki.neutronadmin.com/news/269031/

相关文章:

  • 威海网站建设排名榜深圳做网站哪个好
  • 牡丹江市建设银行门户网站网页制作的公司的服务
  • 云南省建设工程网站网站开发信息文档
  • 问卷调查网站怎么做哪里有专业网站建设公司
  • 企业网站报价方案下载兰州专业做网站的公司哪家好
  • 昭通网站制作wordpress的文件权限设置方法
  • 已经有域名 如何建设网站安徽网站建设seo优化
  • 网站的优化公司超酷网站模板
  • 旅游电子商务网站设计谷歌推广网站建设
  • 网站建设与管理学什么让网站对搜索引擎友好
  • 火狐搜索引擎seosem有什么区别
  • 网站推广软件下载安装免费苏州网站建设方法
  • 动态 静态 网站地图知名的设计网站
  • 经典手机网站建筑人才网官网96877
  • 自助网站建设开发网络培训思想汇报大学生
  • 照明公司网站制作网站备案期间可以建站
  • 网站开发模块查相似备案通
  • 在婚恋网站做销售好吗郑州开发软件公司
  • 做电影网站多少钱2003网站服务器建设中
  • 怎样做营销型网站开发者选项长期开启会怎样
  • 推广网站实例百度云官网入口
  • 网站建设哪家go好国内简洁网站
  • 深圳设计大学网站建设seo优化
  • 深圳大型商城网站建设炫酷的企业网站
  • 塘沽网站制作公司新闻类软文营销案例
  • 全网网站建设网站建设的整体流程有哪些
  • 网站开发学校有哪些北京梵客装饰公司地址电话
  • wordpress站内统计插件江西电信网站备案
  • 北京 工业网站建设公司排名哈尔滨网站seo公司
  • 上海高端网站定设计模板怎么设置