VMSS中Auto Scale基本原理及诊断

在前面的介绍中,我们看到通过定义规则可以实现虚拟机扩展集的auto scale,那么在后台执行上VMSS的扩展依赖于哪些组件,出现问题(比如自动扩展没有发生的时候),我们在拨打400之前,如何快速的检查是否是配置问题?

本文简单介绍一下VMSS下auto scale的原理,以及出现问题如何快速的检查问题。下图展示了Azure的计算资源监控和数据收集机制,从数据源来讲,Azure的监控数据可以来自于应用程序,诊断日志,系统、自定义的指标数据,也包括审计和操作日志。

例如在我们VMSS例子中用于自动化扩展的度量数据,来自于Linux Diagnostic扩展,扩展载我们做ARM模版定义的时候必须正确配置才能获得数据:

通过在Guest OS获得的metric数据会被保存在Azure Storage的Table当中,也可以保存在EventHub当中进行日志收集处理,收集的数据会被用于告警或者自动扩展处理,对于这些日志数据的访问,你可以通过Azure的portal,或者Powershell,或者使用命令行,或者使用REST API提供给第三方的工具进行监控:

在VMSS的ARM模板中,我们已经预先定义了一自动扩展的规则,获取数据的时间窗口,周期,进行scale out或者scale in的规则,那么在运行的时候,自动扩展引擎会根据定义的规则,时间窗口和度量值检测是否满足触发条件,一旦满足,就会执行相应的操作,例如增减,减少虚拟机,邮件通知等等:

到此为止,我简单介绍了一下VMSS的auto scale的工作原理和机制,那么现在问题来了,你部署了一个VMSS包含多个虚拟机,当压力增加的时候,你发现自动扩展没有发生,应该从哪些地方入手?

  1. 当然是检查你的ARM模版,看看你的LinuxDiagnotics是否定义,autoscale是否设置,规则是否正确等等。
  2. 打开你的Powershell并用RM登录,VMSS的autoscale依赖于两个Resource Provider,一个是Microsoft.Insights, 一个是Microsoft.Compute, 要确保他们的状态都是"Registered",否则需要使用命令Register-AzureRmResourceProvider手工注册这两个provider:

  3. 登录到新的Azure Portal,单击你的VMSS的资源组,你会看到上次部署的记录,检查部署日志,正常情况下,所有的部署操作都应该是成功的,如果有任何问题,查看详细日志,修复错误操作并重新部署:

  4. 检查你的自动扩展选项是否为打开状态:

  5. 根据我们之前对于VMSS自动扩展的机制的了解,metrics数据会被写到Azure Storage Account里面,如果上面的配置都没有问题,那么我们需要看一下VMSS里面创建的存储账号,其中一个存储账号是存放诊断数据的:

    如果你看到WADMetrics*这样的表产生了,至少说明你的诊断的存储账号配置是正确的;如果你没有看到任何这样的如下的表产生,则说明你的存储账号和自动扩展配置是错误的

  6. 请下载相关的Azure存储管理工具,比如http://storageexplorer.com/,拷贝你的诊断存储账号的账户名和密码,进行连接,查看WAD*表中是否存在数据,WADMetricsPT1H*存放每小时汇总数据,WADMetricsPT1M*存放每分钟采集数据,如果你看到数据产生,则说明你的Linux Diag Agent工作正常:

  7. 到此为止,如果上述检查都通过,而你看到你的VMSS中的虚拟机你所希望的度量值的确达到了要求,那么你需要看看你在ARM模板中定义的度量值和采集到的值是否一样,因为就CPU而言,也有非常多的度量值,例如早本例中,我们使用的是"\\Processor\\PercentUserTime":

    那么在storage explorer中,选择Query,在查询条件中field选择CounterName,查询值选择"\Processor\PercentUserTime",查询该值的大小:

    在大部分的情况下,如果前面的设置没问题,你的auto scale还是不工作,一般都是你的度量值设置有问题,比如如果你使用的是\Processor\PercentIdleTime,但实际上你看到度量值中这个并不高,你需要检查并调整下你的自动扩展策略。

    基本上绝大部分问题都可以在上述的诊断中解决,了解了VMSS的基本工作原理,可以帮助我们更好的使用这个强大的功能~

深入理解Azure自动扩展集VMSS(2)的更多相关文章

  1. 深入理解Azure自动扩展集VMSS(1)

    前文中已经详细介绍了如何配置和部署Azure的虚拟机扩展集VMSS进行自动扩展,但在实际使用过程当中,用户会出现更进一步使用的一些问题,VMSS基本扩展原理及怎么简单调试?如何进行手动扩展?怎么使用自 ...

  2. 深入理解Azure自动扩展集VMSS(3)

    在实际使用过程当中,使用VMSS有一些最佳实践的建议和限制,便于你在做自动扩展设计的时候进行考虑: 关于VMSS 如果你使用的是系统镜像,一个扩展集中虚拟机数量不能超过100 无论是在ASM还是ARM ...

  3. 使用ARM和VMSS创建自动扩展的web集群

    在很多的商业场景中,用户的访问,峰值时间都是很难预测的,尤其是做一些市场推广活动和促销的时候,到底部署什么规模的web集群合适,这一直是个问题,部署过量会造成高成本和资源不必要的浪费,部署过少,如果到 ...

  4. 使用ARM模板部署自动扩展的Linux VMSS(2)

    12.准备完了模板文件,我们使用Powershell来创建VMSS for Linux的自动扩展集合,首先登陆到Azure中国的ARM账号: Login-AzureRmAccount -Environ ...

  5. Azure vm 扩展脚本自动部署Elasticsearch集群

    一.完整过程比较长,我仅给出Azure vm extension script 一键部署Elasticsearch集群的安装脚本,有需要的同学,可以邮件我,我给你完整的ARM Template 如果你 ...

  6. 使用ARM模板部署自动扩展的Linux VMSS(1)

    在Azure之前的ASM版本或者经典模式中,用户使用Azure Website,Azure Cloud Service等PAAS服务,可以实现一定程度上的自动扩展(auto scaling),但有着诸 ...

  7. Kubernetes 1.12公布:Kubelet TLS Bootstrap与Azure虚拟机规模集(VMSS)迎来通用版本号

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/82880341 https: ...

  8. OpenStack 企业私有云的若干需求(2):自动扩展(Auto-scaling) 支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  9. Redis复制与可扩展集群搭建

    抄自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster 讨论了Redis的常用数据类型与存储机制,本文会讨论一 ...

随机推荐

  1. BZOJ 2115: [Wc2011] Xor

    2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 2794  Solved: 1184 [Submit][Stat ...

  2. c# Random太快产生的随机数会重复

    c# Random快速连续产生相同随机数的解决方案 Random类是一个产生伪随机数字的类,它的构造函数有两种,一个是直接New Random(),另外一个是New Random(Int32),前者是 ...

  3. 红帽(Red Hat Linux)下SVN服务器的安装与配置

    转:http://www.cnblogs.com/xd502djj/archive/2011/01/21/1941404.html 第一章 安装 1. 采用源文件编译安装.源文件共两个,为:subve ...

  4. java事件响应方法汇总(容器类监听、监听器类、AbstractAction、反射)

    Java图形用户界面中,处理事件时所必须的步骤是: 1.创建接受响应的组件(控件)2.实现相关事件监听接口3.注册事件源的动作监听器4.事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应 ...

  5. win8下nodejs安装配置记录

    1:打开nodejs官网http://nodejs.org/ 下载安装版. 2:安装完成后,打开cmd输入node -v 查看是否安装成功: 3:安装express,通过全局安装方式进行安装: 安装完 ...

  6. FJ省队集训DAY5 T1

    思路:考试的时候打了LCT,自以为能过,没想到只能过80.. 考完一想:lct的做法点数是100W,就算是nlogn也会T. 讲一下lct的做法把:首先如果一条边连接的两个点都在同一个联通块内,那么这 ...

  7. perl 学习笔记

    一:基础 1:安装perl      centos: yum -y install perl       官网:https://www.perl.org/      升级到5.22:先下载,执行./i ...

  8. android图标设计事宜

    1.Launcher图标 图标的最佳宽高是48x48 dp. ldpi:36*36px,0.75倍密度,一般不用提供,系统会从hdpi取图缩小1倍. mdpi:48*48px, 1倍密度 hdpi:7 ...

  9. [每日一题] 11gOCP 1z0-052 :2013-09-27 bitmap index.................................................C37

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12106027 正确答案C 这道题目是需要我们掌握位图索引知识点. 一.首先我们来看位图索引 ...

  10. python删除指定位置 2个元素

    # -*- coding: utf-8 -*-__author__ = 'Administrator'import bisect#排序说明:http://en.wikipedia.org/wiki/i ...