如何确定硬件要求

如何确定硬件要求

我被要求为目前正在开发的应用程序指定服务器硬件要求,但我对自己的能力没有信心。我理想情况下想要一份如何自己完成这项工作的分步列表,但阅读其他类似的问题,它并不是那么简单,我可能只需指定我的要求就可以在这里得到最好的答案。

该应用程序是一个 WPF 瘦客户端,它通过 WCF 与托管在 IIS 中的服务器端应用程序进行通信。目前几乎没有业务逻辑要求,但在项目的后期阶段可能会发生变化,并可能将 WWF 纳入其中的一些要求。我使用 NHibernate 作为持久层,并使用 AppFabric 进行二级缓存。最后,数据库将是 SQLServer 2008 R2 数据库。

我被要求制定规范的网站将有大约 20 个用户。为了降低成本,他们想要一个单一的解决方案,从性能方面来看,对于这么少的用户,我相信会没问题,但是,我理解从安全角度以及停机时间等方面来看这样做的风险。如果我在这里很幼稚,请告诉我。

不幸的是,在这个阶段我不知道需要在数据库中存储多少数据 - 最终我是否可以假设我需要存储的数据越多,我需要的硬盘就越大?

如果我遗漏了任何有价值的信息,请在评论中告诉我。

答案1

常见的方法是检查三个主要的可能瓶颈“CPU 能力”、“磁盘 I/O 性能”和“内存要求”,估计每个瓶颈在特定情况下的大致需求,并进行一定程度的过度设计以使您感到舒适(这有点不科学,但当然需要有根据的猜测,包括对未来负载和使用模式以及可能的资源密集型功能的预测)。

对于当今的硬盘大小来说,“数据量”很可能不是问题——你很可能能够获得“完全足够”以低成本实现大容量存储。

内存和 I/O 性能瓶颈通常是相互关联的,因为 RAM 用于缓存速度相当慢的硬盘 I/O,而硬盘在内存不足的情况下用作交换空间。

一般而言,由于系统和库中的算法非常复杂,因此起草委员会做出的任何估计都不会比对实时工作负载的检查和预测更有效。鉴于当今托管和虚拟化领域的机会,我个人建议使用“先试后买”的方法,并从托管市场租用一台 Windows 机器来达到此目的。

相关内容