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在惡劣環境下有優勢