原文 巧妙使用Firebug插件,快速监控网站打开缓慢的原因
很多用户会问,我的网站首页才50KB,打开网页用了近60秒才打开?如何解释?
用户抱怨服务器运行缓慢,w3wp.exe 出现 CPU 100%,每个网管都可能遇到?!是用户自己 ASP / PHP 程序设计有问题,还是服务器是问题,还是电信、网通、铁通互相访问太慢。经常是各说各有理,也扯不清,道不明,往往是以客户流失,更换空间商而结束,最后空间商与用户都是输家。
我的网站首页才50KB,打开网页用了近60秒才打开?
这个问题很难解释清楚,可能越解释越复杂,面对专业术语,客户以为你在推卸责任(秀才遇到兵有理说不清?)。
因为客户根本不想听你解释,只想让网站访问更“快”。如何加快访问?让客户随时自己能“监控”到网站的状态,实时“看到”网站的状态?
首先,我们看看自己电脑与服务器之间的速度
我们先下载一个Mozilla Firefox浏览器(火狐浏览器),下载地址 http://www.mozillaonline.com 然后再下载一个名叫Firebug的“Firefox 附加组件扩展”,下载地址 https://addons.mozilla.org/zh-CN/firefox/addon/1843/ 。
安装Firebug浏览器插件后,在火狐浏览器的“工具”菜单里打开Firebug插件。
同时在Firebug插件的“网络”菜单里选择“禁用浏览器缓存”的选项。
假设我们访问 http://www.sina.com.cn 新浪网站,看到了吗,我们打开这个网站后,同时也打开了很多的Flash动画 SWF、 JPG、JS|、CSS文件,每个文件的下载时间、文件大小、传输速度都可以看到。
这里的速度显示了你与服务器之间的速度,以及下载网页所需要的时间。如果JPG图片、SWF动画很大,需要很多的时间“下载”,自然打开网站就慢了。
理论上,网页越简洁,打开速度越快。像 http://www.google.com http://www.baidu.com 等网站,只有一些文字,几乎没有什么图片,打开速度就非常快,基本是“一闪就打开”。
Firebug 显示了自己电脑与服务器之间的网络传输速度。受(1)是否开启GZIP压缩(2)ADSL的速度(3)服务器带宽(4)是否网间访问,如电信ADSL访问网通服务器网站等因素的影响。理论上ADSL速度越快,服务器带宽越高,那么互相访问的速度就越快。两者缺一不可。
其次,服务器上的ASP、PHP程序文件执行时间怎么监控呢?
刚才通过Firebug显示的速度是网络传输速度和时间,但是无法直接看到服务器里ASP文件执行的时间,即无法看到这个ASP程序执行了多少时间,怎么找出有死循环的ASP页面?
服务器CPU运算速度怎么看呢?有一个简单的办法,就是上传一个ASP论坛,比如动网ASP论坛,论坛的每个页面下面都有一个脚本执行时间。这个反应了每次打开ASP页面,服务器脚本执行的时间。可以简单看出服务器的运算速度。如果这个时间很小,一般零点零几秒,服务器执行速度很快,可以排除服务器自身问题。
对于其他ASP网站,没有动网论坛这样的显示脚本执行时间功能,怎么办呢?我们可以在 http://www.zcnt.com 下载一个《智创网站专业级防火墙》通过防火墙的“IIS运行监控”功能可以监控到IIS里的ASP文件执行时间和情况。如下图所示,可以非常直观的看到网站脚本执行情况。代码有死循环、或执行超时可以监控到,对于排查服务器 w3wp.exe 出现 CPU 100%非常有帮助。
开启gzip网页压缩,让网页传输的更快,让客户“一闪就打开”网页。
我们先来看看什么是gzip压缩,有什么特色?
如图所示,我们通过第三方的gzip在线检查工具(网址 http://tool.chinaz.com/Gzips/ ),看到 http://www.phpwind.net/read-htm-tid-1187375.html 的页面进过 gzip压缩后从 220K减少到了48K左右。压缩率近78 %。
开启gzip压缩功能,只需点几次鼠标,成本为零。而且是IIS自带的功能,稳定可靠。比更换为更高级的服务器带来的效果还好。对于国外的空间,国际带宽小,比如3M、5M、10M的国际带宽,开启gzip压缩能可以大大减少传输网页需要带宽。
这个主要对 HTML、ASP、PHP、NET、CSS、JS等文本网页效果有显著提升。其他 JPG图片、Flash动画等可能已经压缩的了,不需要使用gzip压缩。
浏览器一般会缓存HTML网页、JPG图片、SWF动画等静态文件,从第二次开始,如果服务器的HTML、JGP、SWF等静态文件没有修改,则直接读取本地浏览器缓存里的文件,而不会从服务器下载,无形中提高访问速度。
ASP、PHP、NET等程序网页不会被浏览器缓存,仍然会每次从服务器“下载”,所以 gzip压缩就非常关键了,这就是为什么Discuz、PHPWind等论坛推荐开启gzip压缩。开启gzip压缩后,访问Discuz、PHPWind等论坛速度会非 常快。
我们在回头看看,我们访问一个网站会经过哪些步骤?
注:这里主要是讨论服务器环节,其他环节,如类似域名解析速度,减少网页图片数量等不在本文讨论范围之内。本文主要讨论一些关键的因素。