2010-04-19 62 views
6

我正在開發一個基準測試應用程序,爲此我需要在短時間內創建大量http連接,我在java中創建了一個程序來測試有多少線程是java能夠在我的2GB單核機器中,事實證明,限制在5000到6000之間變化,給JVM提供1 GB的內存,然後在達到堆棧限制的情況下達到內存錯誤。多少併發http請求可以erlang處理

建議erlang能夠生成更多併發進程,如果能夠解決問題,我願意學習erlang,erlang能夠生成大約100000個進程,這些進程本質上是http請求等待對於響應,在幾秒鐘內沒有達到像內存錯誤等任何限制,

+0

Erlang專爲電話交換機而設計,可以同時運行數十萬個「用戶代理」(即進程)。 – 2010-04-19 20:02:42

回答

3

根據着名的理查德瓊斯blog你幾乎可以開箱即可處理100k連接。你必須增加進程限制,參見+P參數,並且它需要小的內存管理技巧,例如, gc或hibernate。爲了顯著實現更多你所要做的多與C.黑客

1

它可以處理幾乎任何東西你扔它。 Erlang進程的重量非常輕。

請參閱http://www.sics.se/~joe/apachevsyaws.html瞭解Yaws和Apache之間併發性的基準。它可以讓你瞭解什麼是可能的。

+0

如果你扔得夠多,沒有什麼可以處理「幾乎所有你扔到它的東西」。良好的鏈接,但。 – 2010-04-20 20:37:44

1

如前所述,很多是一個很好的答案。並且考慮到您的要求是編寫海嘯客戶端,您可以/應該將代碼分發到多個erlang節點。

更好的是,你可能想看看Tsung。這是一個用erlang編寫的分佈式負載測試應用程序。

如果你不想使用它,我很確定你想在那裏讀取代碼。

相關問題