请参阅asp .net应用程序的负载平衡建议和指南

时间:2009-06-09 16:02:22

标签: asp.net

我有一个ASP .NET 2.0 Web应用程序,它是一个在线调查系统。有时它拥有大量用户,而且应用程序运行缓慢。

我想为现在在单个服务器上运行的Web应用程序进行负载平衡。

有人会建议我......

  1. 在所有场景中我应该考虑对我的应用程序进行负载均衡吗?
  2. 哪种类型的应用需要负载均衡?
  3. 负载平衡的优缺点是什么?
  4. 针对负载均衡的开发应用程序的指导原则是什么,
  5. 最多有多少并发用户可以在不影响性能的情况下访问Web应用程序而不会影响性能?
  6. 在我的情况下,应用程序已经开发了。我应该做哪些改变以便为负载平衡做好准备?

    提前致谢。

3 个答案:

答案 0 :(得分:1)

首先,您需要确保知道性能瓶颈在哪里。

  • 如果您可以首先关注每个用户页面的总往返时间,那么您将能够处理更多用户。

  • 如果您在数据库调用方面遇到瓶颈,您可以设置更多服务器来平衡Web应用程序的负载并获得很少的好处。

  • 您的网络服务器是否存在带宽问题?对图像,CSS和JavaScript文件的请求是否与Web应用程序page_load请求一样慢?

  • 确保您没有在会话状态中存储过多数据。如果要将列表或其他大型对象存储在内存中,则必须记住,如果有10,000个具有活动会话的用户,则会将内存使用量乘以导致事物失控的用户数量。在某些情况下,最好将状态信息移出到用户存储的cookie中。

答案 1 :(得分:0)

  

在所有场景中,我应该考虑对我的应用程序进行负载均衡?

在当前服务器无法再自行处理负载的任何情况下。有两种缩放,垂直(购买更好的服务器)或水平(添加更多服务器)。负载均衡是一种水平扩展的形式,通常可以为您提供更多优惠,但也更难设置。

  

哪种类型的应用程序需要负载平衡?

这里的答案几乎与。

相同
  

负载平衡的优缺点是什么?

Pro是它可以让你缩放。缺点是它引入了独特的问题。

  

针对负载均衡的开发应用程序的指导原则是什么?

最重要的是会话。默认情况下,会话状态存储在proc中,这意味着它只存在于一台服务器上。如果用户有可能在不同的服务器上退回,他们将失去会话。我建议阅读它here(您可能想要的方式是不使用会话,或使用状态服务器)

  

最多有多少并发用户可以在不影响性能的情况下访问Web应用程序而不会影响性能?

完全取决于您的服务器硬件和您的应用程序要求。我相信每个核心有5个asp工作进程,所以这是一个考虑因素。还需要考虑使用RAM。

答案 2 :(得分:0)

根据我的经验,软件负载平衡选项有限,不一致且不灵活。

当然,在开发应用程序时,您需要确保应用程序可以扩展为web farm scenario - 即确保使用分布式缓存提供程序,状态服务器等等。

基于硬件的解决方案将提供多种分配负载的方法,并且非常一致。考虑使用NLB / F5 Big-IP负载平衡器等选项。

看看斯科特的这篇文章 - 旧的,但很有用。 http://www.hanselman.com/blog/LoadBalancingAndASPNET.aspx

谢谢,Anoop