2009-03-02 50 views
2

是否有行業標準公式或經驗法則來確定:軟件的帶寬/數據庫增長公式

  1. 應用帶寬的使用/需求
  2. 數據庫的增長需求

我最近開始管理一個新的.NET 3.5/SQL Server項目,並且希望採用比以前更結構化的方法,以確定我的應用程序在存儲和帶寬方面的確切需求。如果有人有任何指標,我將不勝感激!

回答

0

不可思議的是我會告訴你Parkinson's Law of Data

但是,對於數據庫中的每個表,我嘗試瞭解平均記錄大小(特別是在處理varchars等可變長度字段時),然後將其乘以您希望添加的記錄數年。然後我把它們加在一起,並加到最重要的數字上,並將結果加倍。這爲開銷和增長留下了充足的空間。

round_up_to_one_sig_digit(sum(average_table_row_size 
          * num_rows_in_one_year)) * 2 

一個類似的方法與網絡容量一起工作,但你會遇到一些人類和網絡的特點。他們並不是全部以平均間隔時間登錄(所以你在白天/晚上和高峯期間會在凌晨出現高峯,你也不想超過網絡容量或性能的80% )

1

我不是SQL Server專家,但總的來說,對於數據庫大小調整來說,向前發展的最佳方式是理解模式的一點點。例如,數據庫中是否存在分區?是否有很多索引等。 現在每次交易中數據庫數量乘以每小時交易的頻率。這給出了每小時進入數據庫的記錄總數。將其與平均行大小相乘,這提供了沒有分區和索引空間開銷的數據庫大小。要計算分區開銷,需要了解分區類型,如範圍分區或散列分區等,以及每小時或每天創建的分區數,併爲分區增加空間開銷。通常這個數字需要增加50%來估計數據庫的大小。 在網絡的情況下,有很多方法可以做到這一點。我運行etheral來捕獲網絡流量。如果您捕獲網絡流量,它就會變得很有趣 - 數據的季節性如何 - 就像什麼時候,什麼是繁忙時段的帶寬最大使用量等等。然後,您需要一個很好的工具來進行預測 - 比如這將處理數據中的季節性因素,瞭解數據的趨勢並預測如果增加負載會發生什麼情況。使用y = mx + c的簡單圖和線擬合曲線也可以幫助您。

1

先披露:我爲Quest Software工作,這是一家進行績效管理和能力計劃的公司。

有很多產品可以滿足這些需求。 Quest創造了一些功能,如用於SQL Server的Spotlight,用於IIS的Spotlight,用於SQL Server的容量管理器等。沒有單一的公式或經驗法則,因爲系統中的每個組件都會以不同的方式加載,並且您存儲的每個事物都會以不同的方式進行縮放。

例如,如果您要將銷售數據存儲在數據倉庫中,則銷售數據將呈線性增長。這是一個簡單的公式:

(開放日)*(交易每天)*(每項交易項目)

當你第一次打開你的店鋪,每天的交易是相當低的,但隨着口碑相傳約您的業​​務,每天的交易量上升。如果您開始攜帶更多物品(例如亞馬遜從書本到所有物品),您的每筆交易項目也可能會增加 - 但不一定。隨着時間的推移,隨着報告需求的增長,您將實施彙總表以包含有關您的客戶,受衆特徵等的數據,這也會改變您存儲的數據量。另一方面,如果您正在構建一個Web過濾應用程序,則該公式將圍繞每個公司所擁有的員工數量進行調整。隨着時間的推移,人們的衝動量將大致相同,但公式會受到您是否要僱用更多人員或者裁員的影響。

如果您確定預測數據增長的公式,那麼該公式不一定能用於預測您的CPU需求或帶寬需求。

因此,每個容量規劃產品都有自己的一組公式。例如,Capacity Manager只有六種不同的公式可以預測磁盤的增長情況,這甚至不涉及CPU或內存需求。在一家大商店裏,你會發現不同的配方對不同類型的數據效果更好。通常,我發現購買現成的產品具有所有這些公式,而不是重新發明成爲預測公式專家的效率更高。 (我知道,我知道,你會希望我這麼說,因爲我爲一個供應商工作,但在我爲Quest工作之前,我以容量管理員的身份購買了容量管理器,呃。)