小编Qaz*_*lma的帖子

Netty ServerBootStrap选项或childOption及其缓冲区大小对速度的影响

当缓冲区大小增加超过默认值和/或在ServerBootStrap对象中选择(optionchildOption)不正确的覆盖位置时,Netty似乎会降低上载/下载速度.当连接具有更大的延迟(~300ms)时,这变得更加明显

设置:

Netty客户端位于MacOS上,具有默认值.使用具有300ms DNS延迟的"网络链路调节器".默认值:SendBuffer/ReceiveBuffer/LowWaterMark/HighWaterMark - 128KB/128KB/32KB/64KB.

Netty服务器在Windows 8.1上,默认值为SendBuffer/ReceiveBuffer/LowWaterMark/HighWaterMark - 64KB/64KB/32KB/64KB.

Netty 4.1.6版最终版.

使用带有设置的IO图测量wireshark的速度:Y轴 - > SUM(Y字段),Y字段 - > tcp.len

设备在本地网络上.

结果(速度值):

服务器 - >客户端传输(将SO_SNDBUF和水印低/高值设置为0.5*SO_SNDBUF/SO_SNDBUF):

Setting location\SO_SNDBUF   | 64KB   | 128KB  | 1024KB
-----------------------------------------------------------------
option                       | 3.6MB/s| 3.6MB/s| 3.6MB/s
childOption                  | 0.2MB/s| 0.5MB/s| 3.6MB/s
Run Code Online (Sandbox Code Playgroud)

客户端 - >服务器传输(设置SO_RCVBUF):

Setting location\SO_RCVBUF   | 64KB   | 128KB  | 1024KB
-----------------------------------------------------------------
option                       | 0.2MB/s| 0.5MB/s| 3.6MB/s
childOption                  | 3.6MB/s| 0.4MB/s| 3.6MB/s
Run Code Online (Sandbox Code Playgroud)

服务器代码:

"args"值:

"sendToClient"/"sendToServer"(隐含)用于传输方向.覆盖类型的"option"/"childOption".缓冲值的"1"/"2"/"3".

ObjectEchoServer.java

import …
Run Code Online (Sandbox Code Playgroud)

java performance netty

5
推荐指数
1
解决办法
1952
查看次数

标签 统计

java ×1

netty ×1

performance ×1