关于Web事务响应时间的细分以及深入分析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 对于loadrunner而言,response time只反映了传输时间和系统处理事务的时间,而客户的浏览器从接收完所有字节开始到浏览器加载完所有元素、运行完所有js,呈现给用户的这段时间loadrunner是不统计的,这部分属于页面前端性能,需要通过前端工具辅助分析。
版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/77988298

       对于loadrunner而言,response time只反映了传输时间和系统处理事务的时间,而客户的浏览器从接收完所有字节开始到浏览器加载完所有元素、运行完所有js,呈现给用户的这段时间loadrunner是不统计的,这部分属于页面前端性能,需要通过前端工具辅助分析。

       通过Loadrunner获取的事务响应时间,主要可以分解为:First Buffer +Receive + Client Time

       1)First Buffer(建立Connection后,浏览器发送请求并成功接收第一个字节的时间)

       2)Receive(浏览器接收到第一个字节到最后一个字节的时间)

       3)Client Time(请求在客户端浏览器延迟的时间,基本可以忽略)

       除了这三个时间,一般细分时间表里还包括DNS解析时间、FTP认证时间、SSL加密握手时间、Connection创建连接时间等(all time = dns time + connection time  + first buffer time + received time + ssl time + error time + client time + ftp authrioze time),以下是Loadrunner中的页面时间细化表:


        针对first buffer time我们还可以进一步分解:first buffer time = server time  + network time,以下说明一下这两个时间:

        Network Time   每个网页组件的网络时间
        Server Time  每个网页组件的服务器时间   = web application time + server deal time + database time
        |C-----------------request------------>S| 浏览器发送请求
        |C<----------------ACK-----------------S| 服务器发送ACK
        |C<--------the first buffer------------S| 服务器发送the first buffer
        network time 是发出请求到收到ACK的时间
        Server time  是收到ACK后到完成接收the first buffer的时间

        由于Loadrunner统计的事务响应时间不包括浏览器的加载显示时间,所以不能完全体现用户的真实体验时间,所以借用浏览器性能分析工具进行单用户操作分析是有必要的,以下通过浏览器的F12开发者工具进行响应时间的细分分析:

(1)Firefox(Firebug插件)

1)阻挡(Blocking):每个浏览器有并发连接数量的上限(例如Firefox对每个host限制6个连接),如果当前建立的连接数已经超过上限,那么其余该请求会被阻塞,等待新的可以用的连接。

2)域名解析(DNS Lookup):就是从DNS请求发出去到收到回复的时间。

3)建立连接(Connecting):三次握手建立TCP链接的时间。如果是HTTPS的话,还有SSL链接的时间。

4)发送请求(Sending):从发送本次请求的第一个bit,到最后一个bit。对应Request sent

5)等待响应(Waiting):从发送结束起,到收到host返回的第一个bit。相当于是Request和Response中间的间隙。这段时间即系统处理时间(包括后台数据库、应用服务处理时间)。

6)接收数据(Receiving):从收到host返回的第一个bit,到收到最后一个bit。

7)DOMContentLoaded:DOMContentLoaded事件完成的时间,从请求发起时开始,到所有页面元素加载完成。

8)Load:事件,页面load事件完成的时间,从请求发起时开始,到所有js事件运行完成。


(2)Chrome(F12)

1)DNS lookup:域名解析时间

2)stalled:相当于Blocking,是浏览器得到要发出这个请求的指令,到请求可以发出的等待时间(一般是代理协商、以及等待可复用的TCP连接释放的时间,不包括DNS查询、建立TCP连接等时间等)。

3)request sent:请求第一个字节发出前到最后一个字节发出后的时间,也就是上传时间。

4)waiting:请求发出后,到收到响应的第一个字节所花费的时间(Time To FirstByte)。

5)Content Download/ Downloading:接收响应数据的时间(可理解为下载时间)。

6)InitialConnection / Connecting:建立连接的时间,包括TCP握手/重试和协商SSL。

7)DOMContentLoaded:DOMContentLoaded事件完成的时间,从请求发起时开始,到所有页面元素加载完成。

8)Load:事件,页面load事件完成的时间,从请求发起时开始,到所有js事件运行完成。


(3)IE(F12)

1)等候:自开始页面导航起至开始此请求之间的时间。

2)开始:从最初创建请求到发送请求之间的时间。

3)请求:接收到第一个字节所需的时间。发送请求并接收服务器的第一个响应所需花费的时间。

4)响应:接收服务器的响应数据所花费的时间。

5)差距:完成此请求到加载页面之间的时间。

6)DOMContentLoaded(event):DOMContentLoaded事件完成的时间,从请求发起时开始,到所有页面元素加载完成。

7)Load(event):事件,页面load事件完成的时间,从请求发起时开始,到所有js事件运行完成。


        以上这些工具已经能够站在用户角度分析响应时间了,但是如果站在开发角度分析应用响应时间,还不足以细分,比如我们已经知道Watting花的时间长,大都是由于后台处理慢引起的,但不知道是Web服务慢还是数据库处理慢。这时候我们就可以利用一些市面上的APM工具(或更直接一点的,利用一些性能分析小工具,比如.Net的ANTS、Java的visualvm),来监控分析关键事务的响应时间,其监控原理比较复杂,不在这细说,APM的主要功能就是统计分析应用(如.net或Java等)的CPU、内存、网络、数据库、UI等性能,并提供错误日志捕获。以下是监控事务响应时间的效果图:


        细分到具体的慢组件,就可以看到是否是数据库组件慢:


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
使用Python构建简单的Web爬虫:实现网页内容抓取与分析
本文将介绍如何使用Python编写一个简单的Web爬虫,实现对特定网页内容的抓取与分析。通过学习本文,读者将了解到如何利用Python的requests和Beautiful Soup库来获取网页内容,并通过示例演示如何解析HTML结构,提取所需信息。此外,我们还将讨论一些常见的爬虫挑战以及如何避免被网站封禁的策略。
|
2月前
|
常见Web漏洞分析与防范研究
在以上内容中,结合OWASP、Toptal和Brightsec等权威来源的信息,确保回答的专业性和准确性。通过图表和思维导图的方式,可以更系统地了解和记忆Web安全知识,帮助企业在实际应用中更好地防范各种安全威胁。
72 13
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
280 1
Web安全-SVN信息泄露漏洞分析
Web安全-SVN信息泄露漏洞分析
303 2
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
人工智能(AI)、Web 3.0和元宇宙作为当前科技领域的热门话题,它们之间存在着紧密的联系,并在各自领域内展现出广泛的应用和未来的发展趋势。以下是对这三者联系、应用及未来发展趋势的详细分析
122 2
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
59 0
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
73 0
【性能奇迹】Wicket应用的极速重生:揭秘那些让开发者心跳加速的调优秘技!
【8月更文挑战第31天】在软件开发中,性能优化是确保应用快速响应和高效运行的关键。本书《性能调优:Apache Wicket应用的速度提升秘籍》详细介绍了如何优化Apache Wicket应用,包括代码优化、资源管理、数据库查询优化、缓存策略及服务器配置等方面。通过减少不必要的组件渲染、优化SQL查询、使用缓存和调整服务器设置等方法,本书帮助开发者显著提升Wicket应用的性能,确保其在高并发和数据密集型场景下的稳定性和响应速度。
58 0
探索现代Web开发中的框架选择:Blazor、Angular和React的全面比较与分析
【8月更文挑战第31天】随着Web开发技术的发展,选择合适的框架对项目成功至关重要。本文对比了三大前端框架:Blazor、Angular和React。Blazor是微软推出的.NET Web客户端开发框架,支持C#编写前端代码;Angular由Google支持,基于TypeScript,适用于大型应用;React是由Facebook维护的高效JavaScript库。
165 0
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
112 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等