2010-06-05 71 views
1

我們目前擁有一個包含20個SOA服務並具有一個主mysql數據庫和2個從屬節點的系統。我們目前在數據庫中有10 GB的數據。我們有一個要求,表中的數據將會顯着增加。在繼續實施之前,我們想要對系統進行壓力測試。什麼樣的壓力測試對這種分佈式環境有意義?針對基於分佈式SOA架構的系統的壓力測試

另外,在執行壓力測試時,我可以查看延遲和度量標準,例如服務請求90%的延遲是什麼。有沒有其他好的服務指標?我應該查找哪些指標來檢查mysql數據庫?

謝謝

回答

1

這裏有一些想法:

  1. 設置一個測試數據庫和其他數據加載到你意料的增加表;使用您期望增加的倍數,例如,如果您希望表格增加2000行,則將4000行添加到測試表中。
  2. 在MySQL中啓用slow query logging
  3. 確保您的SOA服務器中的日誌記錄級別足夠詳細,以調試壓力測試中的錯誤。
  4. 使用負載測試工具(如JMeter)可以快速連續地針對每個服務運行多個請求。使用您期望的每秒請求數的倍數;我通常會增加2x,4x,8x等預期請求數量。
  5. 依次對每個單獨的服務重複上述測試。
  6. 用「典型」的服務組合重複上述測試 - 例如,如果您希望服務1的服務次數比服務2的服務次數多一倍,請在測試中反映出來。
  7. 如果您想要測試可靠性,請嘗試重複JMeter測試,其中一個或兩個MySQL從節點處於脫機狀態。

JMeter應該給你所有你需要的延遲信息。我喜歡使用的另一個有用的「真實世界」數據點是JMeter,它是90%的查詢時間,即響應時間值大於或等於測試響應的90%。

1

在這種情況下的想法仍然是嘗試和模擬頁面請求和職位,因爲他們在生產中使用。不同之處在於僅用當前生產數據的10Gb副本運行負載測試。 然後模擬額外的數據並運行相同的負載測試。您將能夠比較使用服務的頁面的響應或直接檢查服務調用。

然後,您可以看到額外數據對您的服務呼叫會有什麼影響。

最重要的指標是您期望(或測量)最頻繁調用的呼叫的響應時間。

如果發現性能問題,可以分析數據庫和服務器本身的其他統計信息。