« Google Web Accelerator重新开放 | Main | 手把手教你在ASP中使用SQL语句 »

网站为什么时快时慢

决定网站的速度有很多因素,我们这里提出主要的四个,具体如下:

1。网络的传输质量
事实上除正常重启外服务器是很少当机的,一年也难得碰上一回。但由于目前国内宽带用户的急剧增长,和不断出现的网络病毒,目前国内的网络并不是很好(相信大家都有感觉),到处都面临着线路切割和扩容。所以会出现部分地区暂时访问很慢甚至不能访问的情况。遇到这样的情况请不要着急,因为你不能访问并不表示人家不能访问,你慢并不表示人家也慢。您可以问问外地的网友,他们如果都正常的话,我们建议您去安心睡一觉,起来以后说不定也就好了。至于睡多少时间,就只能看中国网络的改造效率了:)。如果都打不开,请去 看看有没有什么维护的公告,最后再联系我们解决。

2。服务器的繁忙程度
  服务器上运行的网站并不是只有一个,每个网站又有很多的人访问,就是说服务器工作的时候平均都连接着好几千个用户,任何用户对服务器发出请求的时候,服务器都会调用一定的资源来处理用户的请求,一般动网论坛的一次请求大约能占用3%的CPU和100KB的内存,可以想象,当某一瞬间正好有很多的用户同时发出请求,那么服务器自然会忙不过来,这个时候服务器就需要等待有空余资源再来运行用户的请求,用户端就会出现变慢的情况。
所以理论上,服务器上开设的网站越少,整体速度就越快,但不能保证出现暂时的停顿。对于超强型以上的网站,我们会定期转移到独立的服务器,同时控制单服务器的网站数量,超强型以下的网站,我们会根据服务器的负荷来决定单个服务器的网站数量。
当我们发现某个服务器负荷较大,就会采取转移分流的办法,来解决这个问题,一般一个星期左右就能解决。同时也会严格检查占用大量服务器资源的程序和网站,尽快联系站长进行处理。

3。页面本身的因素
用户打开一个页面,服务器处理完程序后会把页面上的内容传给用户。用户接收完所有的数据以后才能完全打开页面。很明显,当然服务器处理程序很慢或者页面上的内容很大的时候,都会影响用户打开页面的速度。
  服务器处理程序的时间,就是很多论坛下面显示的页面执行时间,由于这个是体现服务器的运算时间,所以这个时间和用户的上网速度是无关的,就是说用户用MODEM和ADSL上网,这个执行时间应该是一样的。
  一般服务器处理程序的时间在1000毫秒以下的时候,用户基本上没任何感觉,因为服务器已经在1000毫秒(1000毫秒=1秒)内处理完所有的内容,剩余的时间都是在传递数据。如果你的页面上涉及的文件很大,比如有1MB的图片在做背景,浏览者和服务器之间,就算能达到100KB/S的速度,他也至少需要10秒钟才能打开这个页面。
  所以我们建议页面上尽量不要放置过多、过大的内容。这也是插件版本的论坛速度慢的原因之一,因为插件版用了大量的图片、FLASH对页面进行了美化,同时在页面上增加了很多显示的内容。

4。ACCESS数据库的原因
  现在网上绝大多数网站都是ACCESS+ASP的形式,因为ACCESS结构简单容易处理,而且也能满足多数的网站程序要求。
  ACCESS是小型数据库,既然是小型就有他根本的局限性,以下几种情况下数据库基本上会吃不消:
  1。数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降!
  2。网站访问频繁,经常达到100人左右的在线。
  3。记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!
(注:以上3条只是我们多年以来的经验结果,并不只绝对值,具体视情况不同浮动较大)

  ACCESS论坛(如动网)大了以后就很容易出现数据库方面的问题,当你的论坛数据库在30M以上,帖子5万左右,在线也在100人左右的时候,你的论坛基本上都在处理数据库上花时间,这个时候很可能就会出现数据库吃不消的情况。
  一般症状是所有涉及数据库的页面,突然运行都慢的出奇(执行时间达到5秒以上甚至几十秒),涉及HTML和纯ASP运算的页面都正常,等过一段时间(约 10分钟或更长)以后又突然恢复。这个时候你可以用一般ASP探针测试一下,如果服务器的运算时间正常,而你的帖字量又比较大,就是数据库方面的问题了。

  解决方法:
由于这是ACCESS本身的局限性,所以解决的方法除了减少数据量和更换大型的数据库论坛以外也没什么好办法,也就是现在常说的论坛危机,也是大型的论坛都不是ACCESS的原因。我们推荐以下方法:
 1。临时解决办法:定期删除多余的数据、压缩数据库,限制论坛灌水,甚至限制论坛注册。如果是动网论坛,可以使用论坛自带的分表储存功能,会有较好的效果
 2。比较长远办法:更换论坛和数据库,一般都采用动网sql商业版本+MSSQL 的方案来解决,不过这个需要比较大的投资。因为mssql2000和 ACCESS相比需要更多的资源,光是占内存上,就可以达到每一个在线1M以上的程度,如果你的SQL论坛有100人在线就会吃掉服务器至少150M以上内存。

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on October 28, 2005 4:15 AM.

The previous post in this blog was Google Web Accelerator重新开放.

The next post in this blog is 手把手教你在ASP中使用SQL语句.

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.