转 火山喷发的负载 机场网站的缓存

news/2024/5/18 20:10:15/文章来源:https://blog.csdn.net/edwzhang/article/details/7990945

原址如下:

http://developer.51cto.com/art/201209/357025.htm

 

火山喷发的负载 机场网站的缓存

【51CTO精选译文】与其他许多人一样,我眼下也滞留在欧洲,等待飞回美国的航班。近期的火山喷发不仅影响了欧洲大陆的航班,还影响了全球各地众多机场、航空公司和旅行社的网站。想在周日查看航班状况?几乎门都没有!德国最大机场:法兰克福机场的网站根本就访问不了。这也难怪我会产生这样的想法:他们的网页恐怕遇到了众多万分沮丧的旅客提出的成千上万的额外页面请求。今天已是周二了,网站的响应时间恢复到了“基本上可以接受”的水平。就跟我之前分析过vancouver2010、utah.travel.com或masters.com等其他网站那样,这回分析一下法兰克福机场的网站。

现状:太多的资源,缓存方面设置错误

使用免费性能分析工具dynaTrace AJAX Edition,浏览至http://www.frankfurt-airport.com,为我显示了该主页上的情况。Resource Graph(资源图)显示了JavaScript、CSS和图像等文件的数量。在主页上,我们看到有97个图像、40个JavaScript文件和22个样式表文件。我之前浏览过这个主页——这就是为什么其中一些资源是从缓存显示的。不过我们稍后会看到,目前的缓存设置仍要求我的浏览器发送请求。

网站上有太多的资源

网站上有太多的资源(97个图像、40个JavaScript文件和22个CSS文件等)

继续往下浏览至TimeLine View(时间线视图),即可显示这些资源是从哪里下载的,对页面装入时间有怎样的影响。与许多类似的网站一样,这些内容来自许多不同的域。在这里,我们看到28个域分发广告或标题广告,或者提供Web用户跟踪等服务。我们发现,触发onLoad事件需要花11秒——这时候,所有的初始内容(HTML+引用的对象)已下载完毕。下载时间大部分花在了由www.frankfurt-airport.com提供内容。大多数图像、JavaScript和CSS等文件是从这个域下载的。

由于物理网络连接方面的限制,浏览器只使用2条物理连接来下载这些资源,导致从这个域纯粹下载的时间约为7秒。使用多个域——这种方法名为域名碎片(Domain Sharding),让浏览器可以使用更多的物理连接来并行下载这些资源。这最终缩短了页面装入时间。值得一提的另外一点是下载的文件数量。直到onLoad事件被触发,从主域下载了125个资源。通过合并JavaScript和CSS文件,并且拼合图像文件(可能的话),可以大幅减少这个数字,因而减少了往返次数,因而同样缩短了页面装入时间。

内容来自28个Web域

内容来自28个Web域。大多数图像是从frankfurt-airport.com这个域提供的,减慢了页面装入速度。

我的下一步是更仔细地分析缓存。浏览器能够缓存一些内容,比如静态图像、样式表或JavaScript文件。对不经常变化的内容来说,缓存机制再好不过了。为了验证缓存设置正确,我第二次浏览至主页,记录下另一个会话。如果缓存方面配置正确,我的浏览器应该不会从服务器获取某些资源,而是径直从本地浏览器的缓存获取。Summary View(摘要视图)看起来很好——大多数资源似乎实际上是从缓存获取的:

大多数图像、CSS和JavaScript文件现在从浏览器的缓存获取

大多数图像、CSS和JavaScript文件现在从浏览器的缓存获取。

看起来不错,但等一下。不要被表象蒙蔽了。我们仍看到Server Transfer(服务器传输)时间方面的数值非常高。凭我的经验,这意味着,尽管内容是从缓存获取的,但是浏览器将HTTP请求发送至服务器,以便每一个资源“询问”内容自上一次下载资源以来是否经过了改动(IF-MODIFIED-SINCE)。如果我几个星期或几个月没有访问该网站,这没什么;但是如果上一次页面访问发生在仅仅几分钟之前,就不行了。

如果更仔细地看一下Network Requests(网络请求)视图,就会发现问题之所在。Expires头实际上被设置为“过去时间”。我记录的访问会话是2010年4月20日格林威治标准时间9点38分。Expires头被设置为4月19日——也就是前一天。这就是为什么我的浏览器不得不将HTTP请求发送至服务器,以便每一个“缓存”的元素检查服务器上面有没有更新版的资源。Server(服务器)这一列显示多少时间花在了服务器上的每个请求,确定资源有没有发生变化。Wait(等待)这一列告诉我们,每个请求得等待多久才被处理(这再次归因于物理网络连接方面的限制——每个域只有2条物理连接可用,其他所有请求不得不等待)。

HTTP请求

过去时间的Expires头使得浏览器为每个缓存的资源发送IF-MODIFIED-SINCE请求。

Network(网络)视图显示了几乎所有的HTTP头。由于IE中dynaTrace AJAX插件具有的性质,我们没有获得所有的HTTP头,但是我们获得了最值得关注的HTTP头。我们的用户已经要求社区愿望清单(Community Wish List)上有这项特性。眼下我提议使用网络嗅探器或代理,比如MS Fiddler、HTTP Watch或Charles,以免你嫌AJAX Edition提供的信息还不够详细。

如何提升性能?

从理论上来说,为诸如此类的网站提升相当简单。我之所以讲从理论上来说如此,是因为一些提议的变化需要在Web服务器或Web部署环境上作一些工作或变化。下面列出了一系列提议的变化和估计的性能提升:

•使用HTTP 1.1或至少使用Connection: Keep-Alive:Web服务器使用HTTP 1.0,迫使服务器在每次请求之后关闭物理连接。使用Connection Keep-Alive可以避免不必要的重新连接工作。

估计的性能提升:缩短100至200毫秒(查看网络视图中的Connect Column)

•添加有效期非常长久的Expires头:对于不常变化的那些元素来说,应使用有效期非常长久的Expires头。

估计为返回用户带来的性能提升:缩短4-6秒(具体取决于实际上能长久地缓存多少个对象)。

•合并CSS:把所有22个CSS文件合并成一个CSS文件,可以消除Wait Time(等待时间),并且因减少了HTTP往返次数,因而缩短了Server Time(服务器时间)和Transfer Time(传输时间)。

估计的性能提升:等待时间缩短1.3秒,服务器时间和传输时间缩短1-2秒(假设我们能合并CSS文件)

•合并JavaScript:21个JavaScript文件来自主域。合并这些文件可消除等待时间,并因减少了HTTP往返次数而缩短了服务器时间和传输时间。

估计的性能提升:缩短300-500毫秒

•域名碎片:把由主页面提供的75个图像分散到另外2个图像子域上,让浏览器可以并行下载4个图像。这还让来自主页的其他内容(比如AJAX请求)不必等待图像下载,就可以下载。

估计的性能提升:缩短2-3秒

结论

常常被忽视的小地方(比如错误的Expires头)对网站性能大有影响。如果法兰克福机场的网站能够遵循来自谷歌或雅虎的一些最佳实践,或者是我们在dynaTrace博客上介绍的那些最佳实践,我相当确信许多游客能够在周日访问其网站。

原文:How better Caching helps Frankfurt’s Airport Website to handle additional load caused by the Volcano

 

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

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

相关文章

跨境电商自建站后台系统原型rp_跨境电商仓储物流选择哪家好?

跨境电商仓储物流选择哪家好?跨境电商仓储物流,是针对跨境电商企业量身定制的仓储物流派送一体化业务,在电商旺季能防止因货物过度导致的处理效率低、出错率高、无法准时发货的问题。在电商淡季,能有效避免仓库租赁费、人工费、水电费、设备…

利用其他网站的搜索结果_什么使您的网站在搜索结果中排名很高?

什么使您的网站在搜索结果中排名很高?自搜索引擎开始流行并成为主流以来,这个问题已经引起了网站所有者和企业所有者的关注。特别是,使网站在搜索引擎上排名较高的原因是,大多数人都使用搜索引擎来找到答案并找到他们想要的东西。…

php计划任务导出数据,如何建立备份数据和网站文件的计划任务

下面由宝塔面板使用教程栏目给大家介绍如何建立备份数据和网站文件的计划任务,希望对需要的朋友有所帮助!建立备份数据和网站文件的计划任务登录宝塔 Web 面板 >> 点击左侧菜单栏“计划任务”>> 添加计划任务中,任务类型选择“备…

如何快速搭建一个个人网站

相必很多人都有建站的想法,但是感觉要学的东西太多。这里给大家教一个很快捷的方法。但是前提是要掌握一部分linux基本的命令。 下面开始个人网站搭建的教程: 第一步:首先我们需要一个服务器,这里推介腾讯云15天免费使用的腾讯cvm…

有哪些你一打开,就令你惊讶的网站?

作者:李大颖链接:https://www.zhihu.com/question/393259130/answer/1235087230来源:知乎----------------不仅仅让你惊讶,这10个在线生成器,更让你沉迷!适用人群:单身狗、宅男、猛女、祖安社会…

有哪些你一打开,就令你惊讶的网站?第二趴

原文链接:https://www.zhihu.com/question/393259130/answer/1558178696----上一篇文章推荐了几个惊奇的网站(有哪些你一打开,就令你惊讶的网站?),这一篇更加炫酷。----我来推荐6个小众神奇网站&#xff0c…

解读大型网站系统架构的演化

2014-09-26 09:53 李平 LEE的博客 字号:T | T大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。 AD:干货来了,不要等!WOT2015 北…

黑客规避搜索引擎 劫持网站流量

最令站长头疼的事莫过于自己的网站被黑。如果没有合适的安全措施,即便站长再怎么用心,也会失去网站的控制权。黑客入侵网站之后,可以在上面搭载钓鱼页面,传播恶意软件,盗取敏感信息等。在这篇文章中,我们将…

DataForSeo serp api 使用

serp 使用搜索引擎结果页 由于谷歌搜索引擎反爬太厉害。 我给大家推荐一个好用的平台: DataForSeo serp api serp 提供前100 的搜索引擎结果指定关键字,搜索引擎和搜索位置的实时数据。 所有的post 数据均以json 格式发送 平台地址: https://…

Nginx网站使用CDN之后禁止用户真实IP访问的方法

原文地址: https://zhangge.net/5096.html做过面向公网 WEB 运维的苦逼们肯定见识过各种恶意扫描、拉取、注入等图谋不轨行为吧?对于直接对外的 WEB 服务器,我们可以直接通过 iptables 、 Nginx 的 deny 指令或者是程序来 ban 掉这些恶意请求…

魔百和服务器网站,魔百盒网关服务器下发超时

魔百盒网关服务器下发超时 内容精选换一换物联网平台提供海量设备的接入和管理能力,配合华为云其他产品同时使用,帮助快速构筑物联网应用,简化海量设备管理复杂性,节省人工操作,提升管理效率。使用设备接入控制台&…

el表达式 range_「el」JSTL标签库和EL表达式总结 - seo实验室

elJSTL标签库与EL表达式JSTL 是JSP的标准标签库,是一个JSP的标签集合 ,按照类别包括核心标签,格式化标签,JSTL函数,sql标签和XML标签 ,其中前三个用的概率较高。要想使用JSTL标签库我们首先要做的就是引入对…

power linux磁盘修复,虚拟存储 - Linux on POWER:开发概览_Linux教程_Linux公社-Linux系统门户网站...

虚拟存储对于存储和 I/O 来说,Linux 可以利用很多真实的设备和虚拟设备。这种灵活性可以非常经济地设置 Linux 分区。就磁盘来说,Linux 逻辑分区可以支持 3 个不同的存储选项:" 内部存储,使用 SCSI 适配器和专门用于这个分区…

超强网站,可以代替你电脑中所有的工具软件

「云」的确是个好东西,信息储存在云端后,我们想用就随时拿来用,不想用存在云里也不占空间。那么,平时用的工具软件,能不能也具备「用完即走」的属性呢? nicetool nicetool 之所以强大,在于集合…

大型网站架构演化历程

大型网站系统的特点 高并发,大流量 需要面对高并发用户,大流量访问。Google 日均 PV 35 亿,日 IP 访问数 3 亿;腾讯 QQ 的最大在线用户数 1.4 亿(2011年数据)。 高可用 系统 7 x 24 小时不间断服务。 海量数…

HTML5移动端手机网站开发流程

最近一直在研究移动手机网站的开发,发现做手机网站没有想象中的那么难。为什么会这么说呢?我们试想下:我们连传统的PC网站都会做,难道连一个小小的手机网站难道都搞不定吗?其实手机网站就是一个微缩版的PC网站罢了!至于…

nodeJs express mongodb 建站(linux 版)

一、环境安装 1、安装node wget http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz //下载tar xvf node-v0.12.2-linux-x64.tar.gz //解压cd node-v0.12.2-linux-x64 //到解压目录下cd bin //到bin目录下./node -v //设置全局 ,注意 前面的是你当前存放…

精品网站集合

1、three.js example https://threejs.org/examples/#webgl_animation_cloth 1、react-router-dom(react-router4.0) https://reacttraining.com/react-router/web/guides/philosophy 1、Stylus官方 http://stylus-lang.com/ 2、Less官方 http://lesscss.org/ 3、Sass …

Typescript爬取网站信息

Typescript爬取网站信息搭建爬虫环境编写爬虫代码文中参考:http://www.dell-lee.com/typescript/demo.html?secretx3b174jsx 搭建爬虫环境 以下命令均在项目根目录的终端执行 使用VSCode打开项目文件夹 项目文件夹名为Spider初始化项目文件夹 执行命令&#xff…

自学网站地址

sklearn 随机梯度下降(sgd) 狐狸教程:~#在这里,我们将学习Sklearn中的优化算法,称为随机梯度下降(SGD)。随机梯度下降法(SGD)是一种简单而有效的优化算法,用于查找使成本函数最小化的函数参数/系…