+ -
当前位置:首页 → 问答吧 → IIS 6.0 访问静态页面,客户端很慢,服务器上很快;但所有的动态页面两种方式都很快,求解.

IIS 6.0 访问静态页面,客户端很慢,服务器上很快;但所有的动态页面两种方式都很快,求解.

时间:2011-07-22

来源:互联网

先说一下现在情况,服务器上有大约200万的静态文件.每个文件大小在30K-90K之间.
测试的方法,C#使用多线程通过HttpWebRequest访问网站,从发出请求开始算起,到接收完HTML代码为止.不对HTML进行解析.

测试静态页面:
在客户端(开发电脑上),随机访问一个静态页面,平均在1-7秒之间,非常的慢.
在服务器上,随机访问一个静态页面,平均在5-100毫秒.(相当于访问本地,不用考虑网络问题,所有很快)

那么有人会说是网络或带宽的问题.
那么使用动态页面测试:(动态页面唯一的功能是在服务器随机读取一个静页面然后再输出)
比如如,访问/1.html和访问/read.aspx?f=1.html最终的HTML代码是一样的.

在客户端,访问这个动态页面,平均在500-2000毫秒(比上面直接访问静态要快不少).
在服务器上,结果大概在10-1000毫秒(同样对比要慢点)

以上测试,不用考虑产生随机页面时间,当然产生的随机页面都真实存在的.


实在想不出来是哪里问题造成了,通过internet(不算在服务器上自己访问自己)使用IIS直接访问静态页居然比自己写代码读取静态文件再输出要慢很多.


现在暂时的解决办法是.使用NGINX建了一个网站,根目录指向静态文件所在目录,当通过IIS问静态目录时,使用反向代理去访问NGINX,由NGINX输出静态页面给IIS,再由IIS输出给客户浏览器.


虽然上面这个请求被多次处理,但速度要比IIS直接输出要快的多.


现在待解决的问题是,是什么原因造成了不考虑带宽问题的情况下通过公网络打开静态页面这么慢.

急,来高手解答.

作者: duxer   发布时间: 2011-07-22

所有文件都放在1个文件夹下?

每个文件夹下的文件最好不要过多

作者: afu45   发布时间: 2011-07-23