我有一个ASP .NET 2.0 Web应用程序,它是一个在线调查系统。有时它拥有大量用户,而且应用程序运行缓慢。
我想为现在在单个服务器上运行的Web应用程序进行负载平衡。
有人会建议我......
在我的情况下,应用程序已经开发了。我应该做哪些改变以便为负载平衡做好准备?
提前致谢。
答案 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