高流量网站如何做出高性能?

news/2024/5/20 12:06:42/文章来源:https://blog.csdn.net/weixin_33698823/article/details/92706205

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前一段时间接触了一个教育集团的老总,集团本身是在教育实体化阶段也就是各种教科书盛行的时候起来的,最近 10 年互联网教育越来越火,老板也瞅准商机跳了进来。

可是公司的在线教育板块一直不温不火没有什么起色,Google Analytics、百度统计、CNZZ 数据专家等各种运营软件用了个遍还是老样子。

**「你说为啥?」**老总总是问身边的人。 高流量网站如何做出高性能?

我尝试打开他公司的官网以及几个教育产品的网页,没有一个页面在 10s 内被打开。。。你说为啥?! 高流量网站如何做出高性能?

在时间如此精贵的当下,任何一个互联网公司如果不注重用户体验,一味的注重开发、上线、销售,其结局。。。不管你们想到没想到,我想到了。。。。

有一种声音总是在喊**「我们要高性能网站!」**于是各种服务器、各种 CDN、DNS 全上了之后却发现——花了不少效果不好

那么,问题来了。。。。 #####一.什么叫高性能的网站?

现有两个网站性能架构设计方案:方案 A 和方案 B。方案 A 在小于100个并发用户访问时,每个请求的响应时间是1秒,当并发请求达到200的时候,请求的响应时间将骤增到10秒。方案 B 不管是100个还是200个并发访问,每个请求的响应时间都差不多是1.5秒。

哪个方案的性能好?

如果你的老板要求「我们要改善一下网站的性能」,你知道他指的是什么吗?

同类型的两个网站,X 网站服务器平均每个请求的处理时间是500毫秒,Y 网站服务器平均每个请求的处理时间是1000毫秒,为什么用户却反映 Y 网站的速度快呢?

网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标;同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西,用户的感受和工程师的感受不同,不同的用户感受也不同。

说的再多最后都要上生产环境,所以,最直接、最真实 的就是把用户访问时的各项指标作为最终的判断依据。

打造一个高性能的网站,首先就是要了解性能,那么我们就需要一些指标来具体***量化前端性能***这个关键指标!

#####二.前端页面性能指标

1.Apdex指数

Apdex值和Apdex指数是国际通用标准,是对用户体验满意度的量化值。

基于「真实用户体验」,Apdex 定义了 3 个用户满意区间:「满意」、「可容忍」、「失望」,通过响应时间数值 “T” 来划分。T 值代表着用户满意的响应时间界限,国际上一般默认为 2s,也就是说满意区间就是 0~2s;页面响应时间超过 T 值用户就有些不满了,下一个区间「容忍」的界限值是 T 和 4T,即 4-8 秒之间为容忍区间;响应时间再长用户就开始考虑放弃了,最后一个区间「失望」的响应时间则大于 4T,即多于 8 秒。

采集一定时间内的 Apdex 值之后,经过计算可以得出 Apdex 指数,具体计算公式为:

<pre> Apdex 指数 = [ 满意数量 + ( 可容忍数量 / 2)] / 总样本数 </pre>

这样,用户访问页面的响应时间被量化为一个 0 到 1 之间的「Apdex 指数」,0 代表没有满意用户,1 则代表所有用户都满意。经过统计,基于页面性能的 Apdex 评分于用户的体验紧密关联, 为管理、研发、运维人员提供了一种通过应用性能量化值来评估用户满意度的方法。 高流量网站如何做出高性能?

可行工具:New Relic、OneAPM Browser Insight

2.页面响应时间

说得再好,做的再多最后页面也是要上生产的,线上的页面用户最直接的感受,就是页面响应时间,也就是页面打开耗时。

很多前端性能工具对页面响应时间这个指数只是简单的在本地模拟下,也就是所谓的「拨测」;或者只是简单的通过 window.performance 接口把各个数据上传给使用者,根本无法展现用户的真实体验。

从技术的角度讲,一个页面的打开时间也是要划分为各个部分的,例如:首屏打开时间、白屏时间、dom文档打开时间、资源加载完成时间等;也要重视资源加载耗时详情,是哪些脚本或者 css 拖慢了页面的加载这些都要一目了然。只有这样,一旦页面响应时间过长,相关人员才能有针对性的去进行维护。 高流量网站如何做出高性能?高流量网站如何做出高性能?

可行工具:New Relic、OneAPM Browser Insight、AppDynamics、Ruxit

3.页面响应时间分布

想了想还是觉得有必要把这个指标从「页面响应时间」里面拿出来单独说。

顾名思义,页面响应时分布间就是一段时间内,用户访问页面的响应时间的分布图。其实大部分情况下,一个网站的维护只需照顾到绝大多数用户就可以了,没有必要为了满足各种极端情况而耗费各种资源,中国网络环境的复杂性相信大家都深有体会,所以这种统计就显得尤为必要, 高流量网站如何做出高性能?

可行工具:OneAPM Browser Insight、AppDynamics、Ruxit

4.DNS、TCP耗时

浏览器和 WEB 服务器连接 TCP/IP 的消耗时间以及域名解析时间也是网站优化需要关注指标。

还是那句话————国内的网络环境极其复杂,所以导致经常有 DNS,CDN 不给力的情况,TCP 的连接也经常会不稳定。之前国内外有些工具可以通过模拟拨测的方式来计算 DNS 耗时等数据,但讲实在的,只是这种仿真数据的话 DNS 厂家才不会理你,所以,从用户真实体验的角度来收集这类耗时则显得尤为必要,而现在能做好这一点的工具确实不多,给大家推荐几个。 高流量网站如何做出高性能? 可行工具:OneAPM Browser Insight、AppDynamics、Ruxit

#####三.性能测试方法

网站上线前以及上线后,相关的性能测试也是必须要有的。性能测试是一个总称,具体可细分为性能测试、负载测试、压力测试、稳定性测试。

性能测试

以系统设计初期规划的性能指标为目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。

负载测试

对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这时继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。

压力测试

超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。

稳定性测试

被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定。在不同生产环境、不同时间点的请求压力是不均匀的,呈波浪特性,因此为了更好地模拟生产环境,稳定性测试也应不均匀地对系统施加压力。

性能测试是一个不断对系统增加访问压力,以获得系统性能指标、最大负载能力、最大压力承受能力的过程。所谓的增加访问压力,在系统测试环境中,就是不断增加测试程序的并发请求数,一般说来,性能测试遵循如下图所示的抛物线规律。

日均百万 PV 的站点如何做性能监测

性能测试反应的是系统在实际生产环境中使用时,随着用户并发访问数量的增加,系统的处理能力。与性能曲线相对应的是用户访问的等待时间(系统响应时间)

日均百万 PV 的站点如何做性能监测

在日常运行区间,可以获得最好的用户响应时间,随着并发用户数的增加,响应延迟越来越大,直到系统崩溃,用户失去响应。

而从 OneAPM 提供的 Browser Insight 的定位分析功能来看,跟这个图还是很相似的,只不过是 X 坐标轴是响应时间,Y 是访问次数。 高流量网站如何做出高性能?

性能测试报告

测试结果报告应能够反映上述性能测试曲线的规律,阅读者可以得到系统性能是否满足设计目标和业务要求、系统最大负载能力、系统最大压力承受能力等重要信息,下表是一个简单示例:

日均百万 PV 的站点如何做性能监测

当这些数据得到量化的之后,我们的目标就很明确了,那么最终我们为了打造一个高性能的网站,需要做哪些工作呢?接下来我们分析性能优化的一些策略!

#####四.性能优化策略

如果性能测试结果不能满足设计或业务需求,那么就需要寻找系统瓶颈,分而治之,逐步优化。

1.性能分析

大型网站结构复杂,用户从浏览器发出请求直到数据库完成操作事务,中间需要经过很多环节,如果测试或者用户报告网站响应缓慢,存在性能问题,必须对请求经历的各个环节进行分析,排查可能出现性能瓶颈的地方,定位问题!

排查一个网站的性能瓶颈和排查一个程序的性能瓶颈的手法基本相同:检查请求处理的各个环节的日志,分析哪个环节响应时间不合理、超过预期;然后检查监控数据,分析影响性能的主要因素是内存、磁盘、网络、还是 CPU?是代码问题还是架构设计不合理?或者系统资源确实不足?

2.性能优化

定位产生性能问题的具体原因后,就需要进行性能优化,根据网站分层架构,可分为 Web 前端性能优化、应用服务器性能优化、存储服务器性能优化 3 大类,每一类都非常重要,一款好的工具的重要性就不言而喻了。

目前,OneAPM 针对前端性能的优化产品,Browser Insight 可以让用户免费试用;同时包括针对应用服务器性能优化 Application Insight 产品以及针对存储服务器性能优化 Cloud Insight产品也都提供了免费版产品,希望能够帮助用户不断优化,做出真正意义上的高性能高流量网站!!!

转载于:https://my.oschina.net/oneapmofficial/blog/548501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_826613.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爱车巴巴网站采用beetl

为什么80%的码农都做不了架构师&#xff1f;>>> www.2788.com 供二手车交易服务 转载于:https://my.oschina.net/xiandafu/blog/617527

在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序

编辑人员注释&#xff1a;本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写。 根据您编写的应用程序&#xff0c;Windows Azure 网站上的基本Python 堆栈可能完全满足您的需求&#xff0c;也可能不包括您的应用程序所需的所有模块或库。 不用担心&#xf…

数据量大的sql怎么做优化_网站SEO优化推广怎么做?

网站优化seo怎么做?网站优化是为了进步搜索引擎排名&#xff0c;因此网站优化奉行短长常紧张的一件事&#xff0c;需求我们(水点石穿的坚持去做&#xff0c;那么网站优化奉行seo该当怎么做呢?底下小编来报告你网站优化seo怎么做。1、关节词定位这是举行搜索引擎优化优化非常紧…

python自动填写网页数据并提交_python实现问卷星网站的自动填写

因为有一个课程要求进行调查数据的统计&#xff0c;而且小组里选用的是问卷星为平台&#xff0c;问题的形式比较单一&#xff0c;都为单选或多选&#xff0c;于是想到了用python实现一个脚本来代替小组里大家的手动填写。。 大体上使用的就是pythonSeleniumPILTesseract Seleni…

type=radio增加onclick没有效果_博客外链做seo到底还有效果吗

近日有部分站长针对博客留言外链是否有用发起了讨论&#xff0c;就博客外链是否可以给自己网站带来&#xff0c;传递权重&#xff0c;增加曝光&#xff0c;增加流量等问题站长们都发表了自己经验范围内的各种看法!大体分为两部分&#xff1a;一部分认为博客留言外链无法传递权重…

Window.print()打印整个网站中的部分内容,打印后,原网页保持不变

想要达到打印整个网站中的部分内容且完成打印后原网页保持不变的效果&#xff0c;搜到以下资料&#xff1a;window.print打印指定网页区域的方法JavaScript页面打印&#xff08;只打印指定部分&#xff09;JS打印指定页面且去样式后的内容&#xff0c;window.print都能达到打印…

java网站模版 Bootstrap HTML5 企业源码

获取【下载地址】 【免费支持更新】三大数据库 mysql oracle sqlsever 更专业、更强悍、适合不同用户群体【新录针对本系统的视频教程&#xff0c;手把手教开发一个模块&#xff0c;快速掌握本系统】A 集成代码生成器 [正反双向(单表、主表、明细表、树形表&#xff0c…

SEOer未来发展的两个方向

闲言碎语不多讲了&#xff0c;今天的话题是一位朋友提出来的&#xff1a;“老师&#xff0c;百度近期做了这么多调整&#xff0c;SEO的春天来了还是冬天来了呢?现在学习SEO的话&#xff0c;应该向哪个方向发展呢?”这段时间百度确实压力不小&#xff0c;先是“魏则西事件”迫…

lamp服务器硬件,配置LAMP服务器网站架构

配置LAMP服务器网站架构LAMP指的Linux(操作系统)、ApacheHTTP 服务器&#xff0c;MySQL(有时也指MariaDB&#xff0c;数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母&#xff0c;一般用来建立web应用平台。结构拓扑httpd服务器配置安装环境yum install httpd -y修改h…

推荐一个ASP.NET网站内容管理系统源码

许多人都有各自的兴趣&#xff0c;如打球、踢毽子、看书、看电视、玩游戏等等....我近来迷上了猜灯谜&#xff0c;于是业余做了一个在线猜灯谜的网站&#xff1a;何问起谜语。先出个谜语让你猜猜&#xff1a;不可缺一点&#xff08;打一字&#xff09;。可以在线猜&#xff1a;…

中国开发者如何更便捷地浏览Google开发者网站?

作者&#xff1a;陈卓&#xff0c;Google 开发技术推广工程师在 2016 年 12 月份举行的 Google 开发者大会上&#xff0c;Google 发布了几个谷歌开发者中国网站&#xff0c;帮助中国的开发者们更方便地访问 Google 技术文档资源、学习相关 Google 技术。为了帮助读者们更加方便…

像淘宝、京东这样的大型电商网站服务器构架完全部署方案

任何一个大型网站都是经历用户积累然后成长&#xff0c;从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务…

又闹事!伊拉克黑客Pro_Mast3r纂改了特朗普竞选网站的子域名

本文讲的是又闹事&#xff01;伊拉克黑客Pro_Mast3r纂改了特朗普竞选网站的子域名&#xff0c;特朗普自从参与竞选以来&#xff0c;一直话题不断&#xff0c;尤其是有关网络安全的话题更是令人不安。近日又有报道称&#xff0c;一个来自伊拉克的黑客组织“Pro_Mast3r”于上周日…

基于Yahoo网站性能优化的34条军规及自己的见解

1、尽量减少HTTP请求次数 终端用户响应的时间中&#xff0c;有80%用于下载各项内容&#xff0c;这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减少HTTP请求的次数&#xff0c;这是提高网页速度的关键步骤。 减少页面组件的方法其实就是简化…

【网站建设】搭建简单动态网站

2019独角兽企业重金招聘Python工程师标准>>> 课程介绍 通过前面Clouder课程的学习&#xff0c;或许你已经掌握了在云服务器上发布和部署静态网页的方法&#xff0c;那么如何搭建一个可以随时更新内容的动态网站&#xff1f;通过本课程的学习&#xff0c;你将掌握如何…

大型网站架构演变和知识体系

转载&#xff1a;http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html 大型网站架构演变和知识体系 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变…

日志处理实战:一个外卖网站解决方案(持续更新中)

背景 “我要点外卖“是一个平台型电商网站&#xff0c;用户、餐厅、配送员等。用户可以在网页、App、微信、支付宝等进行下单点菜&#xff1b;商家拿到订单后开始加工&#xff0c;并自动通知周围的快递员&#xff1b;快递员将外卖送到用户手中。 在运营的过程中&#xff0c;发现…

深度学习驱动智能搜索引擎,RankBrain革了SEO的命

去年开始&#xff0c;谷歌使用以深度学习为基础的人工智能核心搜索算法RankBrain&#xff0c;用越来越“类人化”的算法个性定制每个搜索结果。 【编者按】本文由新智元编译&#xff0c;来源&#xff1a;techcrunch&#xff0c;作者&#xff1a;John Rampton&#xff0c;译者&…

C#ASP.NET打包安装部署文件一键安装网站,包括IIS站点创建、数据库附加。

最近在开发web网站安装部署&#xff0c;以前从来没有做过web的安装打包没有头绪就开始上网查资料。 查了两天资料发现网上的资料要么不全要么就有错误&#xff0c;我就总结了网上的资料重新整理的一番&#xff0c;经过本人测试可用无错误 一下为借鉴部分资料的原文地址 此链接为…

服务器的购买与网站的创建

服务器的购买、配置、以及网站的搭建本文提供全流程&#xff0c;中文翻译。 Chinar 坚持将简单的生活方式&#xff0c;带给世人&#xff01;&#xff08;拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例&#xff09; Chinar —— 心分享、心创新&#xff01;…