我经常被要求为我们的客户进行规模和容量规划。当我们的客户购买我们的产品(主要是J2EE Web应用程序)时,他们通常会询问运行这些产品所需的硬件。我们的建议通常会导致昂贵的硬件采购。

到目前为止,我开发的最好的启发式方法是将利用率预测(应用程序应注册的注册用户和并发用户数量)与在我们现有安装中收集的数据进行比较。类似于:如果安装A使用100个X硬件同时参加了100个并发用户,那么安装B将需要2 * X硬件来参与200个并发用户。

但是,这种方法存在许多问题。客户通常使用不同的硬件和软件平台。他们从我们这里购买的产品集通常是不一样的,并且通常应用程序的某些部分是根据特定客户的订单构建的。考虑到软件版本正在改变等,并且有太多的参数使调整任务变得非常困难。

我研究了一些有关该主题的书,有些则建议使用复杂的数学模型。这些方法需要作为输入的参数数量(例如,应用程序功能的详分割类)使我觉得这些几乎没有用。通常甚至在定义基本要求之前就已订购了硬件,更不用说这些将在整个应用程序开发和生命周期中变化。
那么,您如何进行规模调整和容量规划?任何提示和操作方法表示赞赏。

最佳答案

如果必须在定义基本要求之前订购硬件,那么最好的办法是通过查看已安装的基础上的一组类似项目来平衡容量(如现在所做的那样)。跟踪现有客户在增加安装量时在扩展和容量需求方面的经验,如果您有足够的基础,则可以通过将具有相似硬件的类似项目分组并查看容量需求来进行粗略的曲线拟合。观察现有客户容量需求在增长期间如何变化以及其他数据点。

理想情况下,最初的硬件/软件购买是用于试点安装,并且在试点安装启动并符合规格时对基准进行基准测试。使用这些结果来预测从试验到生产的容量需求。当然,这需要在试生产计划中花一些时间来对应用进行基准测试,然后订购并交付设备。但是,与进行全部操作相比,它可以提供更准确的容量估计。

09-10 08:05
查看更多