2016-02-13 66 views
2

我有一个运行在Windows Server 2008/IIS 7.5上的低流量的ASP.NET MVC 4应用程序。 我的问题是:每个浏览器缓慢的第一次加载或一段时间后

  • 第一请求是慢大约15秒。 (后续请求罚款)
  • 另一个请求大约2分钟后没有任何要求,始终得到了响应速度慢(约15秒)
  • 第一个请求,如果我做来自新的浏览器另一个请求,再次需要15秒

解决问题的方案(文件大小为24 KB):

  1. 时间:16:26 - 使用Chrome - 第一个请求需要15秒。随后的请求没有问题。
  2. 时间:16:27 - 使用Firefox - 第一次请求需要15秒。随后的请求没有问题。
  3. 时间:16:30 - 使用IE 11 - 第一次请求需要15秒。随后的请求没有问题。

Here is all screenshots of Developer Tools/Network Tab

而且还提琴手时间输出:

Request Count: 1 
Bytes Sent:  380  (headers:380; body:0) 
Bytes Received: 7,217  (headers:409; body:6,808) 

ACTUAL PERFORMANCE 
-------------- 
ClientConnected: 22:41:26.377 
ClientBeginRequest: 22:41:26.378 
GotRequestHeaders: 22:41:26.378 
ClientDoneRequest: 22:41:26.378 
Determine Gateway: 0ms 
DNS Lookup:   0ms 
TCP/IP Connect: 28ms 
HTTPS Handshake: 0ms 
ServerConnected: 22:41:26.407 
FiddlerBeginRequest: 22:41:26.407 
ServerGotRequest: 22:41:26.407 
ServerBeginResponse: 22:41:41.496 
GotResponseHeaders: 22:41:41.496 
ServerDoneResponse: 22:41:41.503 
ClientBeginResponse: 22:41:41.503 
ClientDoneResponse: 22:41:41.504 

Overall Elapsed: 00:00:15.1258651 

它显示ServerGotRequestServerBeginResponse

之间15秒的延迟时间,该问题只发生在我的家。在工作或我的朋友电脑(意味着另一个ISP)没有问题。此外,我在上网速度没有问题,那么我测试我的网站:

输出ping neshoonak.ir

Reply from 94.232.172.248: bytes=32 time=67ms TTL=122 
Reply from 94.232.172.248: bytes=32 time=56ms TTL=122 
Reply from 94.232.172.248: bytes=32 time=63ms TTL=122 

输出ping 8.8.8.8

Reply from 8.8.8.8: bytes=32 time=134ms TTL=47 
Reply from 8.8.8.8: bytes=32 time=171ms TTL=47 
Reply from 8.8.8.8: bytes=32 time=132ms TTL=47 

我测试了一些网站放在同一个数据中心我的网站位于 ,发现他们都有同样的问题(根本没有问题)。

我的经销商托管说有3个数据中心,我有2个问题(只是在家里)的问题。他建议将我的网站移至第三个数据中心。但它可能会出现在我的网站访问者身上,我不想只为我解决它。

请帮忙!

+0

这可能是一个带宽问题,与您的家庭DSL相比,在您的工作场所更高。此外,您的网页可能会获得多个(即多个)CSS和JavaScript文件,从而导致多次网络旅行。尽量减少JavaSript和CSS文件,并尽可能减少旅行次数。更多的行程意味着更多的页面渲染时间。 – Sunil

+0

此外,请查看您的网站Google Chrome开发者工具中的网络统计信息(有一个时间选项卡,可以准确指出需要多少等待时间和下载时间)。这可能会告诉你什么是响应缓慢的根源。 – Sunil

+0

另外,你的页面中是否有很多'inline' JavaScript和CSS?如果是,那么这也可能导致糟糕的表现。 – Sunil

回答

0

有迹象表明,首先想到的两个possibilies:

  1. 缓存:有一些没有缓存的资源,因此它们需要被加载并需要一段时间。你如何识别这是否是这种情况?安装Fiddler并打开页面。您将看到http响应代码。怎么修?缓存:)
  2. 应用程序池:似乎不是你的问题,但想提及其他读者。这发生在我的一个微软门户应用程序中。他们想要即时装载,并且工作得很好......有时。我调试了几次代码,并对代码进行了分析,直到它碰到我。问题是应用程序池被回收,它需要启动并加载所有内容。我是如何修复的?我每5分钟设置一个cron作业来打开一个页面,这会让应用程序加载到内存中,从而获得接近即时的响应。

希望这会有所帮助!

+0

我在高速缓存中没有问题。我用小提琴手,发现发送请求到服务器时出现长时间的延迟,而响应时间也没问题 ... ServerConnected:\t 22:41:26.407 FiddlerBeginRequest:\t 22:41:26.407 ServerGotRequest:\t 22:41 :26.407 ServerBeginResponse:\t 22:41:41.496 GotResponseHeaders:\t 22:41:41.496 ServerDoneResponse:\t 22:41:41.503 ... – Talebian

+0

能不能DNS解析问题?极不可能,但你可以尝试使用IP或设置谷歌的8.8.8.8。值得一枪。 – xmorera

+0

这里是“ping 8.8.8.8 -t”的一部分结果: 回复自8.8.8.8:bytes = 32 time = 134ms TTL = 47 回复自8.8.8.8:bytes = 32 time = 171ms TTL = 47 8.8.8.8:bytes = 32 time = 132ms TTL = 47 ... 我测试了一些站点放置在我的站点所在的同一个数据中心,发现它们都有相同的问题(工作时没有问题) 。 我的经销商托管说有3个数据中心,我有2个问题(只在家中)。他建议将我的网站移至第三个数据中心。但它可能会出现在我的网站访问者身上,我不想只为我解决它。 – Talebian

0

一个很好的测试就是建立一个像www.site24x7.com这样的监控服务,让它从多个地点ping你的站点,你可以在那里看到响应时间。

+0

我使用了这个伟大的网站提供的测试工具。正如我预计的那样,响应时间并不糟糕。加利福尼亚州 - 美国:1049毫秒,多伦多 - 加利福尼亚州:530毫秒,新加坡 - SG:1787毫秒,金奈 - IN:1621,墨尔本 - 澳大利亚:1894年。今天我再次打电话给ISP,似乎只是我有这个问题。现在我只是怀疑我的调制解调器。但我不知道如何! – Talebian

+0

我曾经使用wireshark来解决连接问题,它非常好,但有一个陡峭的学习曲线 – xmorera

+0

我安装了Wireshark,只是为了方便测试写了一个程序来提出请求。 [这是Wireshark 2请求的结果](http://neshoonak.ir/_data/temp/Wireshark.png)。它还显示第一个请求延迟15秒,第二个请求罚款。 我的网站记录器说,会话在大约22:05:08开始(为了达到这个时间我在/ home/getdate创建了一个方法,并且我做了很多trys来找出服务器和客户端时间之间的区别)。现在一个很大的问题是,我怎么能知道22:04:54到22:05:08之间到达服务器的事件/数据包/请求? – Talebian

相关问题