网站优化实战--解决网站动态压缩过程

本来想写一个网站优化的系列(前端到后端的数据库,垂直优化到分布式,后面会补上),但没有时间(借口),今天就总结一下前几天优化网站的过程。

网站优化重点在于找出出现性能问题的地方,往往是解决方案很简单,过程很艰辛。

先介绍一下场景:公司某网站产品的一个页面加载速度非常慢,完全加载完成大约8秒左右,要尽可能的提高网站加载速度。

线上环境:IIS6.0 +ASP.NET MVC4

解决思路:

对于网站优化我曾经总结过一套方法论:顺着HTTP请求方向追一排查,例如:浏览器->IIS服务器->ASP.NET->数据库。根据二八原则,其中几个阶段的20%的代码造成了80%的性能问题,所以我要重点寻找那20%的代码。但方法论始终是方法论,根据我对业务判断,我的排查流程就变成了这样 : 数据库->ASP.NET->IIS服务器->浏览器。(后来结果证明,我应该按照方法论走)

优化过程:

一、用SQL Profiler监控慢SQL

用SQL Profiler把Duration在3000毫秒以上的慢SQL赛选出来,结果一条也没有,缩小Duration到2000毫秒。结果没有。继续观察有没有N+1的问题,也没有。

二、查看是否是ASP.NET应用程序的问题

用HttpModule监控每个URL的请求时间:

结果当前请求的URL非常快。进行下一步

  三、查看IIS的相关配置。

结果:动态压缩,静态压缩都已经启用。

开始分析IIS日志,IIS日志中记录了每个请求的执行时间,这个时间和HttpModule的时间相减就是网络传输时间,由此可以判断是否是网络引起的问题。

理想总是好的,结果IIS日志已经十几G了,要挨个分析不知道啥时候,放弃,进行下一步。

以后会上LogStash,然后升级IIS(IIS6用起来真蛋疼)。

四、观察浏览器响应时间

由上图接收时间可以看出:网站响应时间大部分都浪费到了网络下载。而且页面大小为1.7M。难道是网络延时太大?ping一下

以上说明网络没有太大延时。这时候突然想起来了公司的网络限速了,下载速度平均200kb/s , 那么1.7M网页下载时间也就大约8s左右了。

再查看1.7M网页内容全是html,而且响应报文头里没有Contend-Ecoding ,说明没进行压缩。但明明服务器开启了动态压缩。

这时想起了博客园写的一篇文章:迁入阿里云后:解决了一个IIS动态内容压缩的问题 但IIS6下没有这个节点,需要修改metabase.xml,修改metabase.xml会影响所有网站,网站出现问题,风险太大,我们需要做的只是压缩当前网站的动态内容,想其他方案。

五、自己写HttpModule解决压缩问题

开始想造轮子 : 在EndRequest用Gizp压缩然后输出,结果EndRequest始终拿不到响应内容。

在万能的Stackoverflow找到这两篇文章 Can I detect if content has been compressed in my HttpModule?

Use .Net 2.0 compression library and HttpModule to compress your webpages

那个代码不适合,然后改造 ,最后修改后的代码:

上线以后经过测试,该页面响应速度2s以内了,而且响应报文头里面也有了Content-Encoding:gzip

总结,其实一开始我应查看浏览器的响应时间这些信息,但根据以往的优化经验和现在的业务,我把关注点放在了后端,不过以后我会按照我的方法论走,那样解决问题的成本更低。

时间: 2024-09-29 04:21:01

网站优化实战--解决网站动态压缩过程的相关文章

网站优化的艺术与科学之工具和基础知识

最近在阅读一本网站优化的书,名叫<深入理解网站优化:提升网站转化率的艺术与科学>,本书是对网站优化的4个学科(Web分析.网站易用性.在线营销和网站测试)的最佳实践.网站优化是一门新颖的艺术,结合前面这四门学科完成对网站的测试和分析,更好地吸引和转化访问者. 实施本书中的最佳实践和测试思路,就能以多种方式改进网站:吸引访问者,使他们经常回到网站中,改进转化率和成功的其他度量因素,最终改进在线业务的财务收入. 一.工具 1)Web分析工具 1.免费和便宜的分析工具:Google Analytic

网站优化的3个seo小技巧

网站运营的基础就是优化,对于很多人来讲,想要把网站做好,提升排名,无疑是一件比较苦恼的事.但是做网站优化,实际上也并没有想的那么复杂,有时候我们可以运用一些优化技巧,就可以把网站优化做好. 做好网站优化,提升网站排名小技巧: 1.网站初期关键词的选取 一般来说,刚刚建好的新站是没有多少权重的,就像是没有任何基础的一个新品牌一样,但是并不代表这个网站就不重要了.要想快速将网站排名做到靠前,打好基础也是相当重要的.在网站初期,如果盲目的去跟风,选择一些竞争激烈的"大词",那无疑是自己给自己

网站优化不等于搜索引擎优化SEO

对于SEO相信搞网络营销的人基本上都知道这个名词,英文全称为search engine optimization,中文一般叫搜索引擎优化,也有的叫搜索引擎定位(Search Engine Positioning)和搜索引擎排名(Search Engine Ranking),简单来说SEO就是在Baidu,google,yahoo,MSN等等各大搜索引擎中获得比较靠前的自然排名的技巧和策略. 目前,搜索引擎优化已经成为许多企业开展搜索引擎营销的重要手段,而搜索引擎营销已经成为企业网站推广最重要的组

网站优化相关理论概述

1.网站优化 网站优化即是网站为了提高用户满意度和网站价值,根据相应策略对网站视觉设计.布局和信息架构等做出的改善措施.网站优化概念有广义和狭义之分,狭义的网站优化就是搜索引擎优化,即为了提高搜索引擎收录和排名,根据总结出的搜索引擎工作原理所做的优化措施.广义上的网站优化不但包括搜索引擎优化,还包括舒适愉悦的视觉体验.层次清晰的网站导航.健全的用户反馈和客服机制.原创且更新及时的网站内容等方面.可见广义上的网站优化有独立于搜索引擎而存在的特性,涵盖范围较广,且形式灵活多样,但用于检测这些优化方面

网站优化应该如何确定关键词的冷热度?

现在网站优化的难度越来越大,一方面,是不断提高搜索引擎算法,很少有机会使用搜索引擎漏洞,另一方面随着移动终端的发展流程,但各种资源显示闭环移动的趋势,搜索引擎不再是一个单一的搜索引擎,直接导致了网站优化越来越多的限制.今天,你和你谈论如何判断关键词的冷热程度的网站优化? 网站优化是什么 网站优化是指根据搜索引擎的规则,优化网站调整,寻求更好地满足用户,同时满足用户可以提高我们网站的流量,然后提高排名. 网站优化分为三个部分:严格站优化和站外优化,网站优化.网站优化实际上是一方面,来满足搜索引擎规

学习笔记 --- 缓存、动态页面静态化、网站优化

http://www.cnblogs.com/cs_net/archive/2011/03/17/1986620.html 一.缓存 缓存(Cache)技术在软件开发过程中有着广泛的用途, 它对提升软件性能和改善客户体验有很大帮助. 所谓缓存, 是指将那些经常重复的操作结果暂时存放起来, 在以后的执行过程中, 只要使用前面的暂存结果即可. 缓存技术在日常生活中随处可见, 就拿排队买票来说吧: 买票时需要先排队, 等轮到自己了, 再告诉售票员你需要买那里的票, 售票员查询完后告诉你有还是没有. 若

如何解决网站首页老被×××篡改并被百度安全中心拦截提示 该页面存在×××病毒的实战过程

2018.6.19当天接到一位新客户反映自己的网站被黑了,网站首页也被×××篡改了,网站首页被加了一些与网站不相符的内容与加密的代码,导致百度网址安全中心提醒您:该页面可能存在×××病毒!网站在百度的收录与快照也被劫持成什么世界杯投注,以及×××,×××等等的内容,根据以上客户给我们反映的网站被黑的问题,我们Sine安全公司立即安排安全技术人员对客户网站被黑的情况进行了详细的网站安全检测与代码的人工安全审计,发现客户网站首页之前是经常的被篡改,客户只能删除掉首页文件,然后重新生成首页,实在是反复

简单网站优化

一.为什么要网站优化 1.1.大型网站的特点 高访问量 同时在线人数多 数据量庞大 数据操作频繁 1.2.网站性能测试指标(用户角度) 日访问量 同时在线人数 最大并发连接数 访问响应时间 1.3.网站性能个体体现 首屏时间:一个网站被浏览器上部,800*600区域充满所需要的时间 网页访问可用性:用户访问网页的成功率. DNS时间:浏览器将地址发送给DNS服务器,DNS服务器根据地址返回IP到浏览器,浏览器得到IP地址,此为DNS时间 建立连接时间:包含DNS时间后,浏览器重到IP地址后,再将

不修改代码就能优化ASP.NET网站性能的一些方法

阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不需要修改程序代码的.它们主要分为二个方面:1. 利用ASP.NET自身的扩展性进行优化.2. 优化IIS设置. 回到顶部 配置OutputCache 用缓存来优化网站性能的方法,估计是无人不知的. ASP.NET提供了HttpRuntime.Cache对象来缓存数据,也提供了OutputCache指