我会提前道歉,因为这篇文章是出于严重的挫折而产生的。
我有一个多年来一直在Windows 2000 / IIS5上运行的经典asp网站,以及我们最近开始在同一台服务器上运行的另一个ASP.NET 2.0网站。到目前为止,一切运行良好。
去年,我尝试升级(全新安装)到Windows 2003 / IIS6。经典的ASP网站速度要慢得多,根据使用周数平均的日志/统计数据减慢约50%。我尝试了一切,以找出什么是缓慢的。网络调整。集成。经典的iis5模式。正在进行中。过程中。没有什么能让事情变得更好,我很快又回到了IIS5 / 2000。这一天回滚,表现回到原来的状态。这发生在多个服务器上。最终,我放弃了并将其归结为2003年某种TCP问题。
我最近在类似但功能更强大的机器上安装了Windows 2008 / IIS服务器,希望事情更好。令我高兴的是,我的ASP经典应用程序在Windows 2008下更快。不幸的是,我的ASP.NET应用程序速度慢了50-75%,原因显而易见。所有这些都是内容加载。它与2000机器在同一网络上。该网站直接从其他计算机上复制而来,它是来自studio 2005的预编译网络应用程序。
虽然页面确实在数据库和另一台服务器上搜索了初始数据,但它从那里缓存了很长一段时间,它也使用与经典站点相同的数据库服务器,这很快,所以我知道它不一定是连接问题。
我已经尝试过默认的应用程序池和经典的.NET池没有区别。 Upped./检查所有常用位置的最大线程数,最大每个cpu,web garen或者似乎没什么关系。我已经仔细检查过,仍然在web.config中设置了编译debug = false。
对于快速基准测试,我使用ab.exe(Apache Bench)一次发送10个请求,1个。即使我使用IE或Firefox来访问该网站,它显然比2000年还要慢,即使是根据萤火虫。
此时,我很沮丧,完全失去了从哪里开始。有没有人经历过这种混乱?
答案 0 :(得分:0)
速度取决于很多因素。您需要仅在服务器上测量性能,以了解这是否是服务器问题。在Web配置中为您的网站启用跟踪,并查看哪个部分/功能正在减慢速度。您可以在每次操作后添加自己的跟踪,以查看哪个代码块最慢。我相信一旦你的哪一部分是最慢的,你会发现你可以改进/优化的东西。
答案 1 :(得分:0)
就我而言,答案结果很简单,我解雇了WireShark。有1个外部资源请求无法解决,因为测试机器没有像直播机器那样直接访问互联网。
这总是小事。