2009-11-28 45 views
1

我想问问你什么是对以下应用的最佳设置:高性能ASP.NET设置

ASP.NET 3.5 Web站点 - 用作表示层,大量的AJAX和JS的。不会打到很多服务器。

ASP.NET WCF - sevice提供所有数据给应用程序。它负责验证,数据建模/准备以及与数据库服务器的通信。

数据库 - SQL Server 2005的标准,一些逻辑被编码在服务器端存储过程。一些逻辑可能有点耗时。在我看来,它是应用程序中消耗资源最多的部分。

该网站每分钟可以有多达1000个用户。我们最多可以在以下配置中配置4台服务器:Intel Bi Xeon Quad 8x 2.00+ GHz,16 GB RAM,SSD或RAID驱动器。

将部分应用程序放置在物理服务器上的最佳方式是什么?他们会处理这种负载吗?

+0

如果你在[serverfault](http://serverfault.com/)上提出这个问题,你可能会得到更多的回应。 – LukeH 2011-12-06 01:33:49

回答

0

在你描述的应用程序中,我怀疑线程管理将是一个大问题。抛出问题硬件可能不是最好的方法。

在分区方面,它取决于你是否可以利用的东西像缓存和缓存通知。如果每次对应用程序的调用都必须击中数据库并运行冗长的存储过程,那么您可能希望拥有更多的数据库机器和更少的前端Web服务器。

这是一个很大的课题。为了给这个问题提供一个相当全面的答案,我最终写了一本关于它的书:Ultra-Fast ASP.NET: Build Ultra-Fast and Ultra-Scalable web sites using ASP.NET and SQL Server

1

在任何应用程序的可扩展性少的地方是数据库服务器,您可以添加更多的Web和应用服务器,但你不能一样简单复制DB所以你会在一个长远受益的,如果DB不包含任何特别的逻辑任何长期运行的逻辑。在许多应用程序中,限制因素不是cpu,而是内存考虑用户会话,如果每个用户存储1mb数据,则应用程序将能够支持64,000个silmantanius用户会话,而这可能足以满足您的需求。这两个问题都可以通过使用应用程序级缓存来缓解,但这会导致它自己的问题,因为现在你面临的是过时​​的数据。要扩展基于会话的站点,您将需要使用支持粘性会话的智能负载平衡器解决方案,因为您的负载很可能需要硬件负载平衡器。