我有一个网站每 5 或 10 个请求就挂起。当它工作时,它工作得很快,但如果你让浏览器静坐几分钟然后点击一个链接,它就会挂起而没有响应。用户必须在浏览器中推送几次刷新,然后它会再次快速运行。
我在 IIS 7.0(Windows Server 2008)上运行 .NET 3.5、ASP.NET MVC 1.0。Web 应用程序连接到在同一实例上本地运行的 SQLServer 2005 数据库。数据库有大约 300 Megs 的 RAM,其余的对于我认为的 Web 请求是免费的。
它托管在 GoGrid 的云服务器上,该实例具有 1GB 的 RAM 和 1 个核心。我意识到这并不多,但目前我是唯一一个使用该网站的人,我仍然收到这些挂起。
我知道排除故障是一件困难的事情,但我希望有人能指出我可能的 IIS 配置问题的正确方向,或者每 1000 个用户使用这些技术的“粗略”平均硬件要求是什么,等等。也许对于网络服务器,我应该至少有 2 个内核,这样如果它很忙,你仍然会得到响应。或者也许 slashdot 的人是对的,我是使用 Windows 时期的白痴,哈哈。不过,根据我的经验,这通常是我的算法/配置错误,而不是底层技术的错误。
任何见解都值得赞赏。
您是否尝试过在真实服务器上运行该应用程序以查看它是否挂在那里?在认为您的应用程序或操作系统存在问题之前,我会怀疑“云”计算平台。你为什么说 SQl 有 300Mb 的 ram=- 就是它正在使用的东西吗?您的规格说您有一台具有 1 GB 内存的服务器。
正如 Jim B 所指出的,您应该在部署之前在 LAB 中进行测试。检查以下
IIS - 确保应用程序拥有自己的应用程序进程空间。
在 asp.net 中检查您的会话状态。
验证应用程序 (IIS) 和数据库之间的连接,可能是云连接被丢弃。
你能看到 IIS 的事件日志吗?看看那个。
从提供的信息看来,最有可能的问题是虚拟机上的单核问题,因为您正在系统上运行 Web 服务器和数据库。如果您的托管公司允许您添加/删除核心,请添加第二个核心并再次检查您的性能。