【Azure Cloud Services】云服务频繁发生服务器崩溃的排查方案
问题描述
云服务(Cloud Services)在使用期间,频繁发生崩溃事件,在崩溃期间,查看CPU负载为100%,而且同时伴随以下情况:
- 部署在云服务上的应用无法访问
- 远程连接云服务实例(RDP)访问黑屏,无法加载或Busy状态
排查方案
在问题的关键点中,CPU负载达到了100%。所以首先需要排查如下几点:
- 当前云服务是单实例还是多实例?
- 实例的机型是小还是大?是什么型号的机器呢?
- 实例中运行的服务是不是非常耗费CPU?
- CPU出现满负载的情况是否有时间规律?
- 部署在云服务上的应用请求量是否与CPU100%的规律一致?
针对以上每一点,采用不同的解决方案。
一:修改云服务的实例数量
有多种方式修改云服务实例的数量。在门户中直接修改或修改云服务配置文件ServiceConfiguration.Cloud.cscfg中<Instances count="1" />数量
- 云服务门户 -> 配置

- 修改ServiceConfiguration.Cloud.cscfg后重新发布

二:修改云服务中实例机型的大小和型号
ServiceDefinition.csdef 文件指定 Azure 用于配置云服务的设置,在其中可以指定A,D,E等不同的系列机型。修改完成后重新打包云服务并进行部署。
- A系列:https://docs.azure.cn/zh-cn/cloud-services/cloud-services-sizes-specs#a-series
- D系列:https://docs.azure.cn/zh-cn/cloud-services/cloud-services-sizes-specs#d-series
- E系列:https://docs.azure.cn/zh-cn/cloud-services/cloud-services-sizes-specs#ev3-series
修改方式如下:

三:查看实例中具体是那个进程消耗CPU最高及时间规律
在CPU高的情况下RDP到当前实例上,打开任务管理器,到进程选项,看一下是哪个进程占用的CPU比较高,这是当前直观的方式之一。其他方式还包含:
- 开启Performance Monitor并设置抓取进程,详细步骤参考文章:【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式
在Azure中开启Application Insights收集 Azure 云服务的性能计数器, 详细步骤参考文章:Application Insights
Performance Monitor 配置页面:

四:当CPU消耗与部署在云服务中的应用相关时,通过获取应用DUMP文件来判断CPU的具体消耗
当判断出是由于某个进程而引起的CPU消耗过高,但是需要进一步分析改进程为何会占用如此多资源时。就需要借助抓取dump和分析dump的工具,如:Procdump(抓取),DebugDiag(分析)
Procdump抓取Dump的运行下面的命令如下:
procdump.exe -ma 9332 -c 90 -s 30 -n 3 参数说明: -ma: 表示抓full dump -c: 设置CPU的阈值,比如例子中阈值是90% -s: CPU 连续超过阈值的时间长度,比如例子中是30s,即只有在这个进程连续占用CPU 超多90%且持续30s才会抓dump; -n: 抓dump的数量,比如3
9332 是进程id
参考资料
【Azure Cloud Services】云服务频繁发生服务器崩溃的排查方案的更多相关文章
- Windows Azure -Azure 网站、云服务和虚拟机的对比
Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...
- How to use VS2012 remote debug Windows Azure Cloud Services
Background: Windows Azure Cloud Services 可以在本地调试,使用Visual Studio 2012 + 模拟器 Emulator.但是模拟器的工作状态和环境和真 ...
- Azure 网站、云服务和虚拟机比较
最后更新时间(英文版):09/24/2014 最后更新时间(中文版):04/11/2015 Azure 提供几种方式托管 web 应用程序,如 Azure 网站.云服务和虚拟机.查看这些不同的选项后, ...
- Windows Azure移动终端云服务管理(公测版)
概览 云在远方,管理在您手中.在这个移动为先 云为先的世界,服务不再是基于请求才提供,而是主动来到身边方便您的模式了.我们最近将会陆续推出几大移动端利器帮助您随时随地管理您的云服务. 首批利器之中排名 ...
- 继收购Magento十个月,Adobe推出Commerce Cloud商务云服务
去年 5 月,软件巨头 Adobe 以 16.8 亿美元的价格,受过了 Magento .在经历了十个月的业务整合后,该公司终于推出了全新的 Commerce Cloud 商务云服务.据悉,其本质上是 ...
- Windows Azure中WebSite 网站, Cloud Service 云服务,Virtual Machine 虚拟机的比较
在Windows Azure服务平台里,Web Site特点是: 在Windows Azure上构建高度可扩展的Web站点. 快速.轻松部署一个高度可扩展的云环境,并且可以从很小的规模开始. 使用您所 ...
- Windows Azure虚拟机和云服务实例计费方式更新
在之前的Windows Azure计费账单中,A0,A1,A2,A3,A4系列的虚拟机(云服务实例)都是以A1为基准计费单位的,即: 虚拟机大小 计费单位(小时) A0 A1*0.25 A1 A1*1 ...
- 记一次腾讯云不能连接DNS服务器的问题排查过程
由于腾讯云在使用过程中需要用到yum,在yum安装软件的时候报错不能连接到源的网站.当时经过排查发现域名没有解析.有可能是DNS服务器问题或者我的腾讯云DNS配置出现问题. 所以我查看了/etc/re ...
- microsoft azure Media Services 媒体服务解决方案
用安全的方式为您随时随地跨设备传送媒体内容.提供可伸缩的端到端媒体解决方案 可用于高级视频工作流的云 实现奥运会规模的直播与点播媒体传送 高可用的编码和流式处理 支持 Flash.iOS.Androi ...
- linux云服务搭建Minecraft服务器
1 准备工作 以下内容全部要在root用户内完成 1.1 安装文件传输工具 为了方便传文件到服务器上,这里先装一个远程传输工具. yum -y install lrzsz 1.2 安装java Min ...
随机推荐
- OpenPower机器上面搭建RabbitMQ 以及简单进行用户配置的方法
OpenPower机器上面搭建RabbitMQ 以及简单进行用户配置的方法 公司有一台性能比较好的power机器. 同事要求安装rabbitmq 今天尝试进行了一下处理 公司里面有网络有相应的源 性能 ...
- 《Javascript高级程序设计》读书笔记——继承与原型链
继承与原型链 原型链 在原型那一节中,讲到了用于搜索对象属性的原型搜索机制:而原型链,本质上 就是对原型搜索机制的扩充: 回想下之前的内容,我们要读取一个Person的实例p属性,会先搜索实例p:如果 ...
- 【VictoriaMetrics的vmbackupmanager】这个一年卖 2 万美元的功能,我做出来了
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.背景 在可观测领域的 metrics 解决方案中,Vi ...
- 一个思路:实现 golang 中的 `__file__` `__line__` 宏
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 测试 zaplog 发现,开启 caller 的调用,会使 ...
- Go-操作redis/redigo
目录 Go-操作redis 安装 连接 使用 设置key过期时间 批量获取mget.批量设置mset 列表操作 hash操作 Pipelining(管道) redis发布会订阅模式 事务操作 万能操作 ...
- 西门子PLC高校作业以及创新项目
抢答器 在主持人按下启动按钮,3秒内
- 飞桨paddle遇到bug调试修正【迁移工具、版本兼容性】
PaddlePaddlle强化学习及PARL框架{飞桨} [一]-环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习 ...
- python快速入门【三】-----For 循环、While 循环
python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...
- tensorflow语法【zip、tf.tile、tf.truncated_normal、tf.data.Dataset.from_tensor_slices、dataset中shuffle()】
相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...
- C/C++ 使用CRC检测内存映像完整性
前面的那一篇文章中所使用的技术只能有效抵抗解密者直接修改硬盘文件,当我们使用动态补丁的时候,那么内存中同样不存在校验效果,也就无法抵御对方动态修改机器码了,为了防止解密者直接对内存打补丁,我们需要在硬 ...