为什么我的网站需要这么长时间才能加载?

时间:2009-11-30 04:17:28

标签: asp.net-mvc hosting performance

这里的问题。

我的网站托管在asp.net mvc的共享主机上。我登录并说出并填写我的一份表格并想提交。提交是使用jquery ajax请求完成的。

现在突然它会挂起并且不会像20秒那样做某事突然间它会完成我保存表格的请求。

现在就是这样。我可以做同样的请求10次,其他9次可能需要200-500毫秒才能完成。那为什么会出现这样的时差呢?

似乎我做了一个请求,然后做了一些其他请求,请求会快速但是如果我停下来并回来几分钟,第一个请求可能需要一段时间才能完成(似乎在5到20秒之间) )。

但实际上只要感觉就好了。有时我几乎可以在没有看到它的情况下进行整个会话。有时我连续多次获得并且必须刷新页面然后它会再次快速。

那是什么导致了这个?

  • 这可能是我写的代码,这就是为什么它变慢了?
  • 是我的托管网站吗?
  • 这是我在家里的联系吗?

就像我不知道导致这个或如何测试的原因所以我甚至无法开始修复它。

5 个答案:

答案 0 :(得分:4)

您需要使用分析器(如ANTS Profiler)来确定缓慢的原因。如果没有关于应用程序运行方式的一些数据,就会有很多可能导致性能下降的原因。

答案 1 :(得分:3)

首先要使用像Fiddler或Firebug这样的网络分析器。如果问题来自网络延迟,或者实际上只是等待来自服务器的响应,您应该能够很容易地告诉您。可能它是服务器。

下一步是在遇到慢速请求时能够看到CPU和内存发生了什么,如果它正在访问数据库,你需要能够看到那里发生了什么。也许有一个交易被阻止。

理想情况下,您应该查看几个与硬件和.Net本身相关的内置系统性能计数器,例如请求队列和GC统计信息。

答案 2 :(得分:1)

我也注意到在共享主机上该应用程序可以退出全局内存并需要在第一次重新访问该站点时重新编译。这个过程(重新编译)显然与你的代码库的大小有关,但是对于重新编译的中小型站点来说,15-20秒听起来并不合理。

要解决这个问题,请确保编译所有视图,而不仅仅是核心DLL代码。

答案 3 :(得分:0)

如果您在一天中的不同时间对此进行了测试,或者您刚刚部署并注意到滞后,我会很好奇。可能是服务器上运行的备份或导致该行为的其他管理作业。问题是,在共享主机上,您很少有选择来确定性能问题的原因。如果滞后一直发生,则可能是以下情况之一:

  • 服务器共享帐户太多而资源不足(主持人不会承认)
  • 您正在与一个非常繁忙的网站共享硬件(您的主机不会轻易承认,但您可以自己查找)
  • 其他帐户正在运行资源非常密集的应用程序(主机会帮助您)

您可以为您的IP执行反向DNS查找,并查看正在运行的其他内容。 您可以在等待响应时ping服务器,看看网络延迟是否增加,或者响应速度是否非常快。最后,你可以请一位支持人员来看看。

答案 4 :(得分:0)

您是否已将日志记录添加到应用程序中,以便识别服务器代码中的延迟?

除了Fiddler和Firebug之外,我还将实现一堆日志记录。可能是服务器上的特定请求被搁置。

记录将缩小其可能性。