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