优云APM最佳实践: 诊断平安城市视频网性能问题

top.jpg


前言:

平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战。如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,优云APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在。

平安城市是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通管理、应急指挥等需求,而且还要兼顾灾难事故预警、安全生产监控等方面对图像监控的需求,同时还要考虑报警、门禁等配套系统的集成以及与广播系统的联动。

处于平安城市系统核心地位的视频监控系统,架构复杂。组成系统有成千上万的高清摄像头、数以千计视频系统、数以百计的卡口系统、以及背后复杂的存储和管理系统;同时横跨多种网络,包括4G,以太网,光纤网。摄像头在线率,随时随地迅速调取视频,就是整个视频系统成效的关键指标。

最近接到客户反馈,视频网看起来挺正常,监控看到摄像头在线率也挺好,各个市级子系统检测结果都挺正常,但就是打开视频很慢。接到情况,优云马上组织了技术人员前往。

>>>>业务请求跟踪,什么慢?

在初步了解后,我们对视频应用平台整体结构进行了梳理,整个应用平台分成两个层次,省级和各个市级,多达十几个子系统,这里我们介绍一下主要的架构,并且选定关键路径侦听镜像。

1.jpg

通过安装部署优云APM,跟踪观察省级SIP信令,横向综合比较请求多维度信息。我们发现成功率和响应时间与请求量存在明显的关系,当请求量上升时,系统成功率大幅下降,而响应时间大幅上升。省级SIP请求次数与成功率、响应时间的变化关系如下图所示:

2.jpg

>>>>单次业务链跟踪,哪里慢?

在发现了请求响应迟缓之后,我们进一步用优云APM单笔跟踪功能,跟踪单一次SIP请求过程,发现大量的错误和时延,确定最终错误根源在某市级SIP服务器,即省级向市级发起SIP调用过程,市级返回错误,调用失败。

3.jpg

从一次摄像头视频请求的过程来看,从省级发起视频请求,到返回,市级SIP服务器响应时间过长。

>>>> 模拟分析,为什么慢?

到目前为止,问题基本上锁定在市级的SIP服务器一端。我们对市级的两万多摄像头巡检。发现成功率4.4%,有返回,但是错误返回9.6%,无返回超时86%。

从市级SIP服务器指令监控结果来看,同样发现成功率和响应时间与请求量存在明显的关系,当请求量上升时,系统成功率大幅下降,同时响应时间大幅上升。甚至有到1分钟以上。

4.jpg

是什么原因导致了市级的服务器在处理连续请求,仅仅响应了部分请求之后就连续报出错误信息?我们分析了市级SIP服务器的每次响应的时间和状态关系,最终发现高并发的情况下SIP服务器没有正确结束请求,释放资源,导致不能继续处理后续的请求。

事情终于有了一个结果,但对运维探索却才刚刚开始。由于一般客户的视频系统大量的采用了虚拟化,云化系统建设,使得传统运维,定点监测的方案在当前的系统架构下已经不能完全胜任。运维如何跟上业务系统的敏捷开发的脚步?得益于优云前瞻的运维方案,快速的、敏捷的,动态跟踪用户的软件架构,有效的帮助定位和解决问题。

作者:刘成穆

·优云软件资深架构师

·         10多年IT运维管理软件的研发经验

·         主要从事应用性能管理的研究和开发工作

优云:秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维服务平台。

“ 活动期:现到2016年12月31日前使用优云产品全免费,欢迎详询:https://uyun.cn

更多运维技术文章请关注优云官方微信(broada_ops)

优云公众号二维码(250250).jpg

原创文章,作者:uyunops,如若转载,请注明出处:http://www.178linux.com/28839

(0)
uyunopsuyunops
上一篇 2016-08-05 16:15
下一篇 2016-08-05 16:16

相关推荐

  • 使用mysql-mmm实现高可用mysql读写分离

    MMM介绍:  MMM全称为Multi-Master Replication Manager for MySQL,即为主主复制管理器;根据MMM官网介绍,其工作原理类似于lvs,都是利用vip地址;但lvs只有一个组件便可以正常工作,而MMM则使用三个组件,分别是mysql-mmm、mysql-mmm-agent、mysql-mmm-monitor…

    Linux干货 2015-08-04
  • sed命令、crontab任务、简单脚本练习(21期网络班第六周博客作业)

    vim使用: 直接使用sed模式空间演示,基本语法与vim命令模式类似(需注意vim默认定界为当前行,一般需要在前面加1,$定界为全文,而sed不需要) 1、 复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;      sed &#03…

    Linux干货 2016-08-22
  • Linux文件管理命令

    2018-03-11

    2018-03-11
  • 文件的查找作业

    1、查找/var目录下属主为root,且属组为mail的所有文件 2、查找/var目录下不属于root、lp、gdm的、所有文件 3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件 4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件 5、查找/etc目录下大于1M且类型为普通文件的所有文件 6、查找/…

    Linux干货 2016-08-15
  • LVM逻辑卷&RAID管理&磁盘配置详解

    LVM逻辑卷管理 应用场景:想象一下,你通过传统的硬盘分区方式为某些用户提供了一块磁盘,随着用户数据的不断增加,分区的容量告急。这时要增加容量,只能选择用另一块容量更大的硬盘或分区来替换,在这个过程中,你需要将数据先拷贝至新设备,拷贝完成之后,再用新设备替换容量告罄的设备。假设你很有耐心并且整个数据的拷贝过程是顺顺利利的,你也需要考虑靠背后文件的权限变化、替…

    Linux干货 2016-09-02
  • 学习宣言

    努力不只是为了更好的生活,更是为了证明自己! 只有逼自己一把,才能知道自己是可以做到的! 路漫漫其修远兮,吾将上下而求索。

    Linux干货 2016-12-26