2010-01-13 52 views
15

我經常被要求爲我們的客戶執行尺寸和容量規劃。當我們的客戶購買我們的產品(基本上是J2EE Web應用程序)時,他們經常會問他們需要哪些硬件來運行這些產品。我們的建議通常會導致高成本的硬件採購。尺寸和容量規劃技巧和操作方法

到目前爲止,我開發的最佳啓發式方法是比較應用程序預測(應用程序應該註冊的註冊用戶和併發用戶數)與我們現有安裝中收集的數據。例如:如果安裝A使用X硬件出席100個併發用戶,則安裝B需要2 * X硬件才能出席200個併發用戶。

然而,這種方法存在一些問題。客戶通常使用不同的硬件和軟件平臺。他們從我們這裏購買的產品通常不會相同,而且通常應用程序的一部分是爲特定客戶訂購的。考慮到軟件版本正在發生變化等等,並且有太多的參數可能會導致確定任務的難度。

我研究了一些關於這個主題的書籍,並且提出了一些使用複雜數學模型的建議。這些方法需要的參數數量(例如應用程序功能的詳細分類)使我認爲這些參數幾乎沒有用。硬件通常在定義基本要求之前訂購,不要提及這些要求在整個應用程序開發和生命週期中都會有所不同。 那麼,你如何去做大小和容量規劃?任何提示和方式讚賞。

回答

3

如果基本請求數才定義的,好了,你能做的最好的是看你安裝了一套類似的項目基地,球場容量(如你現在正在做的)硬件必須是有序的。跟蹤現有客戶在擴展安裝時對擴展和容量需求的體驗,如果您擁有足夠大的基礎,則可以將類似項目與類似硬件分組,並查看容量需求,從而進行粗略的曲線擬合。觀察現有客戶在增長過程中的容量需求以及其他數據點的變化情況。

理想情況下,初始硬件/軟件購買適用於試用版安裝,並且您可以在試用版安裝完成並符合規格時對其進行基準測試。使用這些結果來預測從試點到生產的能力需求。當然,這需要時間在試生產計劃中對應用程序進行基準測試,然後訂購和交付設備。但是,它會比預先做出更準確的容量估算。

0

如果應用以優美的方式水平縮放,粗略的初始估計就可以作爲起點。一旦應用程序在生產環境中運行,根據需要添加或刪除其他框應該很容易。

+0

這個問題是商業性的,而不是技術性的。客戶需要事先了解初始和TCO。另外,如果您知道所需的確切產品,與硬件供應商進行談判會更容易。估計過大,客戶端卡住了他不需要的硬件;估計得太少,而且你打亂了他的預算,對供應商沒有影響力等等。 – Dan

4

有沒有簡單的或數學公式來預測規模,你給的描述,如果您(或您的公司)是認真的話,最好的辦法是建立一個性能&可擴展性的測試環境中,你可以輕鬆地設置&拆除各種客戶端配置並向他們發送負載以查看他們將如何執行。因爲您正在構建自定義組件,所以一個寫得不好的組件或缺少索引可能會搞砸一切,因此擁有這樣的環境就是在向客戶提供這些信息之前可以將這些事情解決的地方。一旦擁有這種類型的環境,您可以將內存& cpu添加到應用程序服務器&數據庫以查看您的應用程序如何擴展。

我會建議一個VM環境,他們可以根據應用程序的需要輕鬆添加CPU內存,再加上一些真實的使用watchmouse或browsermob等服務的外部負載/比例測試。