2

我有一種服務,使用Twitter Streaming API實時使用twitter帖子。性能測試Twitter流媒體API消費者

我已經構建了一個後臺進程,它連接到流,並將推送到Redis中。這是用node.js構建的

我需要做的是找出這個進程可以消耗的最大推文數。我需要對此設置進行性能測試。

什麼是測試這個最好的方法?

我需要知道:

  • 能有多少鳴叫處理它落在了
  • 之前什麼時候該進程不能處理更多的鳴叫

另一個原因發生,爲什麼我想要這樣做是爲了解決它是否值得使用node.js。 我寧願用EventMachine來代替它。

回答

2

由於您本質上受到來自Twitter Streaming API的推文的頻率和數量的限制,因此您對基準測試真正感興趣的是您的後臺進程相對於Redis的I/O性能。

模擬推文並生成僞推文或收集實際推文的重要抽樣,並在您的基準測試中使用此數據集。在嘲笑/生成這個數據集之後,你可以精確地寫出你的基準。例如,手動設置的數據,您可以將整個數據集一次全部推送到新的推文事件處理邏輯中,或者模擬活動的高峯和低谷。

當基準測試識別並隔離所需變量(微博數量)時,使用標準化樣本並模擬不一致和外部行爲(API限制,可變推/秒速率)。

+0

我可以看到如何測試工人,因爲他們是獨立的,並且有簡單的輸入和輸出。 我需要做的是制定一種方法來測試流連接。那是我看到我的瓶頸的地方。我們只能與Twitter建立一個流連接,但我可以啓動許多工作人員來迎合負載。 – 2012-07-18 09:28:30

+0

TwitterStream花園軟管具有限速功能,因此它不會給出超過特定數字的結果(該數字是根據api的全球流量的%1)。當你達到這個限制時,它會開始給你提供跟蹤限制通知。因此,您可以通過給予廣泛的關鍵字集來測試流媒體,並查看您的系統如何處理該流。給一個關鍵字設置400個關鍵字,其中包含常見或流行的詞語,如「愛」,「感覺」,「奧巴馬」,「比伯」等。 – cubbuk 2013-01-04 08:44:23

0

我會建議創建自定義客戶端模擬Twitter流API。客戶端可以爲您的應用程序生成推文消耗。我們可以使用支持自定義腳本的負載測試工具從分佈式機器運行此twitter腳本以生成所需的負載。在生成推文時,您可以監視系統的運行狀況,以衡量推文吞吐量對應用程序的影響。