2010-09-26 45 views
1

我正在尋找可幫助我評估軟件體系結構性能的工具。對於這個特定的項目,我需要建模一個與面向消息的中間件(MOM)相當的適當大小的[分佈式]系統。基於模型,我想在特定情況下測量系統的性能。另外,這些工具應該幫助我做出決定,以改變架構會如何影響系統的性能。評估軟件架構的性能?

下面是一個例子問題(與MOM比喻留下),我希望能回答:
將如何吞吐量(在郵件/秒爲單位),整個系統的變化,如果持久層是從SQL後端改爲一些新奇的NoSQL後端,並保持最終的一致性?在[簡化]模型中,需要使某些內容持久化的組件(即寫入數據庫)具有延遲X ms的操作,直到持久性提供程序確認爲止。如果持久性後端改變並且確認是即時的,則所述延遲將下降到Y ms。如何減少這個延遲會影響系統的吞吐量?

請注意,我主要對準備使用軟件產品或建模技術感興趣,而不是研究材料,但仍可隨意提及值得注意的學術資源。

+0

你可能會考慮編輯這個問題,而不是增加許多隻是對問題的澄清而已的答案。 – 2010-09-26 17:12:21

+0

@Mike鄧拉維:他們*不是*澄清問題,而是一些*可能*答案我想出了(我通過做一些研究之前做了我的功課)。此外,我不想模糊這個問題,它現在已經很複雜了。如果其中一個答案(不一定是我的答案)變得有趣,我會問具體的後續問題。 – paprika 2010-09-26 18:57:23

+1

爲了產生任何有意義的東西,我會假設你需要每個吞吐量信息的響應時間來滿足你的特定流量模式。如果你猜這是你的模擬結果可能會失敗。 – Bernd 2010-09-26 19:07:26

回答

0

儘管主要用於網絡研究,但ns-3 simulator可用於模擬和模擬您的應用程序。這可能取決於您的應用程序如何以網絡爲中心。 ns-3有一個Application類作爲其對象模型的一部分,該模型旨在用於對TCP/UDP上的所有內容建模。您可以編寫一個非常簡化的應用程序邏輯版本,只通過網絡發送亂碼,並在特定的操作中引入延遲。 ns-3提供良好的可追溯性。

0

SimPy這樣的模擬器框架可能對模擬和模擬系統行爲有價值。與諸如ns-3之類的東西相比,您沒有現成的零件,但是您不會受到網絡中心模擬的限制。

通過這種方法,您可以擁有建模世界的所有自由,但如果不從一個好的對象模型開始,那麼在模型中更改零件可能會非常耗時:使用泛型概念可能是一個好主意就像組件之間溝通的「渠道」,而不是直接/明確地連接組件。面向對象的概念和最佳實踐適用。

0

This master thesis評估幾個Architecture description languages (ADLs)及其適用性以評估體系結構的性能。它得出結論,目前的ADL不支持在性能預測方面評估非功能屬性。本文還介紹了一種名爲SAPE(軟件體系結構性能評估)的軟件,正如其名稱所暗示的那樣,旨在幫助評估軟件體系結構的性能方面。看起來這個軟件在任何地方都不可用。

0

This paper概述了幾種從[正式]軟件體系結構規範中派生出性能模型的方法。在大多數方法中使用的規範語言是UML,性能模型[]包括排隊網絡(QN)及其擴展稱爲擴展排隊網絡(EQN)和分層排隊網絡(LQN),隨機時間Petri網(STPN),隨機過程代數(SPA)和仿真模型

1

您給出的例子更多的是設計和實現方面的變化 - 而不是架構。當然,NoSQL的實現可能會更快,並且總體上會有所增加,但它的實現性能會被測量。

我建議體系結構的性能更多地基於組件的數量以及它們如何安排 - 這取決於您在「體系結構」和「設計」之間劃定界限(以及實施細節)。

Roger Sessions花了很多時間在IT系統(特別是面向服務架構)中查看impact of complexity。就我個人而言,我懷疑有一個好處,那就是更復雜的架構可能效率不高,因此速度不那麼快。

我不確定你真的可以測試一個架構的「性能」 - 從它只存在於「紙上」的角度來看。在紙上看起來很完美的飛機已經知道會殺死試飛員。

就軟件而言,我意識到各種建模系統的功能可以讓您運行一個流程並找出瓶頸;我唯一知道的是ProVision(但可能還有其他)。

0

大概OMNeT++最接近什麼來什麼,我腦子裏想的:

的OMNeT ++是一個離散事件仿真 環境。它的主要應用領域 是 通信網絡的仿真,但由於其 通用和靈活的架構, 被成功用於其他領域 喜歡複雜的IT系統 的模擬,排隊網絡或硬件 架構。