我们目前正在构建一个基于 .NET 3.5 的 ASP.net N-Tier 应用程序,并使用 Oracle 10gR2 作为后端数据库。该应用程序是数据密集型和基于事务的,需要支持大约 600 个并发用户的平均负载。
计划将 Windows Server 2008 / IIS7 用于 Web 层和应用程序层。64 位绝对是一个选择。数据库服务器已经到位,目前不是考虑因素。
由于应用程序仍在设计中,我无法进行任何负载/性能测试,也无法使用这些数据来了解预期负载所需的硬件数量/类型。此外,对于这种配置的标准服务器/ CPU 类型,您有什么想法吗?
我在服务器硬件/模型方面只有非常有限的经验/知识,在成本方面则更少,因此,对于这些参数的任何帮助都将非常感谢!
答案1
粗略地说,您希望在 Web 中拥有许多服务器,在应用程序中拥有的服务器则不是那么多,而在数据库层中拥有的服务器则更少。
显然,这在很大程度上取决于您的代码实际执行的操作以及代码编写得如何,但您应该能够在 Dell R710 上处理每台服务器平均 200 个用户(除非每个用户会话占用数十兆字节的内存)。如果用户会话需要大量内存,那么通过一些计算,将 IIS 可以使用的总内存除以每个会话所需的内存量,应该可以得出“每台服务器的并发用户数”。
经过适当的调整,Windows/IIS 出奇地稳定。我在 IIS6 服务器上的命中率一直达到每秒 10,000 次(作为投入生产前的预热测试的一部分)。当您有一些代码需要基准测试时,请务必仔细查看 perfmon,并进行相应的调整。
答案2
Tony 的回答很好。在设计部署架构之前,您应该能够进行一些负载测试,以便获得粗略的数字,我希望如此?也许是迭代式的?针对测试/开发版本进行一些 LoadRunner 或其他仪表测试,以便您至少可以开始规范这些内容?