APM最佳实践: 诊断平安城市视频网性能问题
前言:
平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战。如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在。
平安城市是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通管理、应急指挥等需求,而且还要兼顾灾难事故预警、安全生产监控等方面对图像监控的需求,同时还要考虑报警、门禁等配套系统的集成以及与广播系统的联动。
处于平安城市系统核心地位的视频监控系统,架构复杂。组成系统有成千上万的高清摄像头、数以千计视频系统、数以百计的卡口系统、以及背后复杂的存储和管理系统;同时横跨多种网络,包括4G,以太网,光纤网。摄像头在线率,随时随地迅速调取视频,就是整个视频系统成效的关键指标。
最近接到客户反馈,视频网看起来挺正常,监控看到摄像头在线率也挺好,各个市级子系统检测结果都挺正常,但就是打开视频很慢。接到情况,优云马上组织了技术人员前往。
>>>>业务请求跟踪,什么慢?
在初步了解后,我们对视频应用平台整体结构进行了梳理,整个应用平台分成两个层次,省级和各个市级,多达十几个个子系统,这里我们介绍一下主要的架构,并且选定关键路径侦听镜像。
通过安装部署APM,跟踪观察省级SIP信令,横向综合比较请求多维度信息。我们发现成功率和响应时间与请求量存在明显的关系,当请求量上升时,系统成功率大幅下降,而响应时间大幅上升。省级SIP请求次数与成功率、响应时间的变化关系如下图所示:
>>>>单次业务链跟踪,哪里慢?
在发现了请求响应迟缓之后,我们进一步用APM单笔跟踪功能,跟踪单一次SIP请求过程,发现大量的错误和时延,确定最终错误根源在某市级SIP服务器,即省级向市级发起SIP调用过程,市级返回错误,调用失败。
从一次摄像头视频请求的过程来看,从省级发起视频请求,到返回,市级SIP服务器响应时间过长。
>>>> 模拟分析,为什么慢?
到目前为止,问题基本上锁定在市级的SIP服务器一端。我们对市级的两万多摄像头巡检。发现成功率4.4%,有返回,但是错误返回9.6%,无返回超时86%。
从市级SIP服务器指令监控结果来看,同样发现成功率和响应时间与请求量存在明显的关系,当请求量上升时,系统成功率大幅下降,同时响应时间大幅上升。甚至有到1分钟以上。
是什么原因导致了市级的服务器在处理连续请求,仅仅响应了部分请求之后就连续报出错误信息?我们分析了市级SIP服务器的每次响应的时间和状态关系,最终发现高并发的情况下SIP服务器没有正确结束请求,释放资源,导致不能继续处理后续的请求。
事情终于有了一个结果,但对运维探索却才刚刚开始。由于一般客户的视频系统大量的采用了虚拟化,云化系统建设,使得传统运维,定点监测的方案在当前的系统架构下已经不能完全胜任。运维如何跟上业务系统的敏捷开发的脚步?得益于优云前瞻的运维方案,快速的、敏捷的,动态跟踪用户的软件架构,有效的帮助定位和解决问题。
作者:刘成穆 就职优云软件资深架构师
APM最佳实践: 诊断平安城市视频网性能问题的更多相关文章
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- .Net最佳实践3:使用性能计数器收集性能数据
本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...
- 经典的性能优化最佳实践 web性能权威指南 读书笔记
web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...
- 2018亚太CDN峰会开幕, 阿里云王海华解读云+端+AI的短视频最佳实践
4月11-12日,2018亚太CDN峰会在北京隆重召开,在11日下午的短视频论坛中,阿里云高级技术专家王海华进行了<短视频最佳实践:云+端+AI>的主题演讲,分享了短视频的生命周期关键点和 ...
- 《开源安全运维平台OSSIM最佳实践》
<开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业 ...
- MongoDB最佳实践中文手册
背景:查阅了一下MongoDB的相关文档,发现中文文档还是比较少的,工作中需要用到MongoDB,而这本<MongoDB最佳实践>是很好的选择,所以就把这本手册翻译了一下,其中生涩的专业用 ...
- fir.im Weekly - 2016 年 Android 最佳实践列表
2016 年已经过去一半,你在年初制定的成长计划都实现了吗? 学海无涯,技术成长不是一簇而就的事情.本期 fir.im Weekly 推荐 王下邀月熊_Chevalier的 我的编程之路--知识管理与 ...
- 基于开源软件在Azure平台建立大规模系统的最佳实践
作者 王枫 发布于2014年5月28日 前言 Microsoft Azure 是微软公有云的唯一解决方案.借助这一平台,用户可以以多种方式部署和发布自己的应用. 这是一个开放的平台,除了对于Windo ...
- Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
多种Windows Azure服务可以帮助您将应用程序安全性扩展到云. 有三种服务可提供多个提供程序之间的身份标识映射.内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处). ...
随机推荐
- CentOS和Ubuntu安装软件命令对比(区别)
此表内容来自<Ubuntu Server最佳方案>,CentOS和Ubuntu(Debian)是VPS最常见的系统,这份表很实用,分享下
- win7cmd静态绑定arp
netsh -c "172.16.3.1" "f4-ea-67-8b-91-cc"
- 本来想用jsonp来跨域请求的,但sb写接口的,不改返回值。。。只得在后台请求接口了。。。
string url = "ssss.com";//demo里的是get请求 HttpWebResponse w = HttpHelper.CreateGetHttpRespons ...
- 【Java面试题】4 静态变量和实例变量的区别?详细解析
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加.在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量.静态变 ...
- GC之二--GC是如何回收时的判断依据、shallow(浅) size、retained(保留) size、Deep(深)size
回到问题“为何会内存溢出?”. 要回答这个问题又要引出另外一个话题,既什么样的对象GC才会回收? 一.对象存活方式判断方法 在上一篇文章<GC之一--GC 的算法分析.垃圾收集器.内存分配策略介 ...
- linux下 安装mysql教程
安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6. ...
- swift - UIDatePicker 的用法
1.初始化button,datepicker,label等控件,初始化时间格式化器 var datePicker = UIDatePicker() var btnShows = UIBu ...
- 实现Runnable接口和继承Thread类区别
如果一个类继承Thread,则不适合资源共享.但是如果实现了Runable接口的话,则很容易的实现资源共享. 实现Runnable接口比继承Thread类所具有的优势: 1):适合多个相同的程序代码的 ...
- ARM漏洞
Google安全团队Project Zero公布了多个高危漏洞,称这些漏洞几乎影响到了市面上所有的微处理器,AMD.ARM还是英特尔的处理器都难以幸免,围绕这些处理器打造的操作系统和硬件设备也会受到影 ...
- Runtime 运行时之一:消息转发
解释一 上一篇文章咱们提到了Runtime的消息传递机制,主要围绕三个C语言API来展开进行的.这篇文章我将从另外三个方法来描述Runtime中另一个特性:消息转发机制. 一.消息转发机制 当向某个对 ...