一次netty與java socket的壓力測試對比【yetdone】為什么要用netty


1 結果:比較遺憾,無論是本機、單核遠程、4核遠程,兩邊的測試效果相當

2 遠程測試,netty與socket都只能到2900個連接,極限了,4核服務器也是

后來發現,施壓機java.lang.OutOfMemoryError: unable to create new native thread

3 配置2000個連接:

 

4 參數要點:

Forever,ramp-up Period 0 ——盡量模擬並發,防止太多線程(連接)太久進入或提早退出,弱化bio的弱點

不設置響應時間;響應超時太短,則兩邊都是同樣的錯誤率、同樣的吞吐量

 

5 本地結果:

socket

 

netty

 

6 遠程單核

socket bio,netty nio,netty epoll

三者遠程200、2000個連接,qps 均在750

 

7

qps socket高

平均響應時間 socket高

想要時間穩定性 netty好

 

8 為什么要用netty-https://youzhixueyuan.com/netty-implementation-principle.html?from=singlemessage&isappinstalled=0

1)java 類庫麻煩;

2)獲得nio的非阻塞客戶端

3)客戶端面臨斷連重連、網絡閃斷、半包讀寫心跳、失敗緩存、網絡擁塞和異常碼流的處理等等

4)NIO 的 Bug:例如臭名昭著的 Epoll Bug,它會導致 Selector 空輪詢,最終導致 CPU 100%

 

9 為什么本次測試失敗了

重點:

1)測試強度、設備達不到netty體現優勢的閥值

2)測試環境太理想,可能netty在惡劣環境下有優勢

 

一次netty壓力測試.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM