当Web访问性能出现问题,如何深探?

对运维或开发工程师来说,遇到访问性能问题时,最先需要定位的是问题出现在哪个环节,是网络的问题,服务端的问题,还是客户端的问题?

往往技术人员喜欢把精力放在保障后端服务的可用性方面,而对前端界面是否能正常装载,是否能完整渲染不是太关心。但从业务的角度来说,界面承载的才是最终的业务,业务是通过人机交互来实现的。

日常我们遇到哪些场景需要定位访问性能瓶颈?

·不同地域访问同一应用速度的差异性较大时

·不同时段访问同一应用速度的差异性较大时

·低版本浏览器导致界面加载速度慢或失败时

·不同的操作系统(特别是手机)导致界面加载速度慢或失败时

·外链资源或第三方服务拖慢界面加载速度时

还有更多场景需要定位。我们是否有简单的办法来定位是网络的问题、服务端的问题还是客户端的问题?答案是肯定的。现代的浏览器提供给我们一些便利的条件可以获取从请求开始到页面渲染完成各个环节的时间,注意这里说的必须是现代浏览器,他们有个共同的特点,即遵循W3C的TimingAPI。

之前与大家交流过《监控真实的用户体验,从一行代码开始》可在“优云敏捷运维”公众号参看此文。通过一行代码来实现数据采集,优云Web实现访问性能定位就相对简单,请看下图。

1.jpg

让我们来看下如何解读这些数据。

从用户操作角度来衡量用户体验

首先是操作名称,比如“打开首页”,这是一个重定向的操作,对应的URL是http://

这里"打开首页"的操作是如何来呢?在这里先卖个关子下回再聊,这就是优云Web与其他任何产品不一样的地方,其他产品往往是给你一个URL地址,内容是什么,上下文操作是什么需要你自己去猜,非技术猿类无法理解。

·聚焦关键度量指标

oApdex

o平均响应时间

o平均用户可操作时间

o吞吐率

其中平均响应时间可以分解为

o客户端时间

o网络时间

o服务端时间

2.jpg

在这个例子中,我们发现客户端时间占了15秒之多,而网络和服务端占的时间非常少,两者仅1秒不到。说明页面在前端耗费了大量时间来加载和渲染。出现这种情况的时候,用户往往以为服务端很慢,其实不然,据我们了解,70%的访问性能问题出在前端上,这个与我们的认知大相径庭。因此这个锅该谁来背?大概率来说,70%的锅应该是开发人员来背,运维赶紧拿数据砸过去吧。

·对关键指标进行深度分析

o响应时间与操作数趋势的关联关系:分析两者是否有正相关关系

o响应时间精细化分析:平均值、中位数、最慢的5%

o响应时间按满意度分布:哪些操作满意、哪些可以容忍、哪些不满意

3.jpg

·抽样调查

我们会对不满意的用户进行抽样,通过抽样我们可以看出哪些地域、哪些浏览器的用户会比较容易出现访问性能问题,具体还可以细化到页面的资源加载时间。这些数据有什么用呢?可以知道哪些页面资源可以进一步压缩优化,减少http请求数,可以让我们来检验CDN是否真正有效,或没有启用CDN的应用可以考虑CDN加速等等。

4.jpg

5.jpg

以上是个人关于访问性能体验的一些心得,优云Web体验还是建议你亲自来感受它的不一样。

优云全线产品免费试用:https://www.uyun.cn

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

(0)
uyunopsuyunops
上一篇 2017-01-09 10:03
下一篇 2017-01-09 10:03

相关推荐

  • Nginx工作原理和优化、漏洞。

    1.  Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。 Nginx的模块…

    Linux干货 2015-04-04
  • 查找 -数据结构

    几种查找算法:顺序查找,折半查找,分块查找,散列表 一、顺序查找的基本思想:  从表的一端开始,向另一端逐个按给定值kx 与关键码进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与kx 相同的关键码,则查找失败,给出失败信息。 说白了就是,从头到尾,一个一个地比,找着相同的就成功,找不到就失败。很明显的缺点就是查找效…

    Linux干货 2015-07-28
  • Linux GRUB legacy

    Linux GRUB Linux GRUB Linux GRUB 单用户模式(密码破解) 救援模式 实例 GRUB菜单 GRUB命令行接口 GRUB简介 GRUB 菜单组成 GRUB配置文件 GRUB安装及修复 GRUB单用户及救援模式 GRUB简介 了解grub之前,需要理解linux的启动流程,如果之前有对linux启动流程不了解的可以看:http://…

    Linux干货 2016-04-25
  • TCP网络关闭的状态变换时序图

    TCP共有11个网路状态,其中涉及到关闭的状态有5个。 在我们编写网络相关程序的时候,这5个状态经常出现。因为这5个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。 下是是根据W.Richard Stevens的《…

    Linux干货 2015-04-03
  • 信息论的熵

    1.  前言    熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。    在信息论里则叫信息量,即熵是对不确定性的度量。从控制论的角度来看,应叫不确定性。信息论的创始人香农在其著作《通信的数学理论》中提出了建立在概率统计模型上的信息度量。他把信息定义为“用来消除不确定性的东西”。在信息世界,熵越…

    Linux干货 2016-03-27
  • Linux下btrfs子卷的挂载

        对btrfs文件系统的补充:     btrfs文件手动挂载自不必多说,但若想btrfs文件系统开机自动挂载,该如何实现呢?     其实只需添加挂载选项即可,如下: UUID=c99895c8-5b14-4276-80c7-ecf…

    Linux干货 2015-12-19