【发布时间】:2015-03-17 08:55:42
【问题描述】:
所以我有这个 Web 应用程序(ASP.NET MVC 4 网站),它在任何时候都有至少 2,000 个在线用户。我的应用程序中最受欢迎的页面之一包含有关用户的数据,这些数据不在我的存储库中,它包含在一些集成到我的系统中的外部供应商中。因此,每当绘制此页面时,我都必须调用这些服务(目前有 17 个),然后根据它们提供的数据绘制页面。数据在任何给定时刻都会发生变化,因此我无法缓存它。大部分时间一切正常,CPU 利用率为 5% - 30%(当然取决于在线用户的数量)。对于每个服务调用,我有 5000 毫秒的超时(对于服务引用,我设置了 SendTimeout,对于原始的 HttpWebRequests',我将 TimeOut 属性设置为等于 5000 毫秒)现在假设一个服务已关闭,则我的服务器的 CPU 利用率出乎意料地低,如 3% - 8% 并且应用程序滞后,我的意思是加载页面(任何页面)需要一些时间,例如,如果在正常情况下我的应用程序的响应会花费(150-250ms) 现在需要 1-3 秒。我不知道该怎么做。我无法减少超时,因为某些服务有时需要 3-4 秒,所以 5 秒超时是我可以提供的租约。我能做些什么来防止延迟响应?我知道这有点笼统的问题。任何建议将不胜感激。提前致谢。
【问题讨论】: