2012-10-22 68 views
12

我在我的開源項目中使用Apache MINA。但是,我遇到了一個性能障礙,無法處理從移動設備上傳到服務器的大型有效載荷。我收到內存不足的錯誤。我從來沒有使用過Netty,而是想把Net與MINA交換。Netty處理大型有效載荷的能力

我對Netty團隊的問題是,Netty如何在大規模傳入負載的負載下執行操作。在我的性能測試中,我使用1000個併發設備每個發送1MB大小的有效負載來生成負載。它傾向於在5分鐘內生成1GIG的上傳數據。這種負載往往會打破MINA。

可以Netty支持這個負載和更多。您對此的意見非常感謝。

btw:我做了使用JProfiler的應用程序的配置文件。它確實指出MINA堆棧是罪魁禍首。我甚至完全斷開了我的服務器端堆棧,並將其留在使用數據並返回數據的普通MINA服務器上。在這種模式下,即使我的後端沒有進行真正的處理,它會在大約15到20分鐘內耗盡內存。

+1

我沒有使用JProfiler剖析應用程序。它確實指出MINA堆棧是罪魁禍首。我甚至完全斷開了我的服務器端堆棧,並將其留在使用數據並返回數據的普通MINA服務器上。在這種模式下,即使我的後端沒有進行真正的處理,它會在大約15到20分鐘內開始耗盡內存 – openmobster

+0

優秀!如果您覺得您的評論應該成爲其中的一部分,請隨時編輯您的問題。 – Adam

+1

我會說,試試看吧。這是一個很好的機會。但請記住,您的工作負載可能需要更多的內存和GC來調整您使用的任何框架。 – akostadinov

回答

1

這似乎是庫的錯誤用法,而不是實際的圖書館本身的問題。如果沒有用戶錯誤,IMO Netty可能會做同樣的事情。沒有這個結果之前,我在高帶寬應用中使用了MINA。這可能是因爲你的網絡已經飽和了,緩衝區只消耗了所有等待上傳的內存。只是我的2分。

0

我曾經在一個項目中使用過Netty,我們試圖構建一個能夠通過HTTP流式傳輸大塊數據的平臺。我們沒有機會在你所概述的場景下加載測試Netty。當我們考慮Netty選擇哪個框架時,是因爲它的性能和API超過了MINA和其他類似的框架。有很多已經完成Netty vs MINA比較的網站。 IMO應該能夠通過使用直接字節緩衝區的組合來滿足您的用例,並在數據讀取時將數據寫入磁盤/存儲。