gpt4 book ai didi

Java - Mule UDP 丢包

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:06 25 4
gpt4 key购买 nike

我搜索了很多关于这个主题的内容。

  • UDP 不可靠
  • UDP 无法发送大于 64kbs 或 65507 字节且没有 header 的数据包
  • MTU 通常为 1500
  • sysctl.confnet.core.rmem_max = 52508000net.core.rmem_default = 26265600
    net.ipv4.udp_mem = 102400 26265600 52508000
    net.core.netdev_max_backlog = 65536 net.ipv4.route.flush = 1

    我在 Windows 中进行了测试,尝试在 300 秒内以 256 kbps 的速度发送 100 条消息/秒,并且通过本地主机没有丢包。

尝试通过本地主机片段 256kbs 的 4 条 65507 字节消息中的 Linux,发布 125000~ 消息 120000~ 收到 4% 的数据包丢失。

在 2 个子网之间尝试,我得到了可怕的结果,发布 125000~ 并接收 40000~。

我的机器:1 GB 以太网、32 核、32 GB RAM Linux 内核 2.6.32-358.el6.x86_64

我的应用程序设计有 10 个线程,从特定 IP 发送到 10 个端口。

我在 Mule 中的 UDP 连接器:

    <udp:connector name="udpConnector" timeout="0" validateConnections="false" receiveBufferSize="26265600" sendBufferSize="26275600" broadcast="true" keepSendSocketOpen="true" doc:name="udpConnector"/>

也许我忘记了设置或者我的 Mule UDP 参数是错误的,但我无法用一台好的机器来解释这一点。

有人可以照亮我吗?非常感谢,但 TCP 不是一个选项 ^^

                            //sendData = new byte[65507];
tim = 300;
delay = tim * 1000;

setmsgSec(40);

do{
for(int i=0; i<=msgSec ;i++)
{
ds.send(dp[3]);
cont++;
setCont(cont);
setRate(cont);
setAvgBytes(sendata[3].length);

}

Thread.sleep(1000);
tim = tim - 1;
delay = delay - 1000;
}while (delay != 0);
setCont(cont);

最佳答案

问题已解决。

解决方案:在每台机器上为缓冲区设置相同的值,对于 1GB 以太网、32 核和 32G RAM 以及 200 条消息突发 256kbps,这个值足够了。

kernel.threads-max = 2048
net.core.optmem_max = 16777216
net.core.rmem_default = 2620280
net.core.rmem_max = 16777216
net.core.wmem_default = 2620280
net.core.wmem_max = 16777216**

我使用性能成本较低的 log4j.properties:

log4j.rootLogger=INFO, default.out
# System.out.println appender for all classes
log4j.appender.default.out=org.apache.log4j.ConsoleAppender
log4j.appender.default.out.threshold=INFO
log4j.appender.default.out.layout=org.apache.log4j.PatternLayout
log4j.appender.default.out.layout.ConversionPattern=%m%n

关于Java - Mule UDP 丢包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22986543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com