Linux UDP 丢包问题
2013-01-21 21:12
295 查看
每个UDP包680字节左右,同时发送1500个包到服务器,发现大多被内核丢掉:
修改 /etc/sysctl.conf中关于socket缓冲区的配置 :
net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
用sysctrl -p命令使配置生效,解决内核丢包问题
但是如果udp发送速率过大,内核缓冲区即使增大了,服务器应用程序如果处理不过来,仍然会在应用程序那丢包,因此要在应用程序中调大socket的接收缓冲区。
在java中这样调大:
DatagramPacket datagramPacket = new DatagramSocket();
datagramSocket.setReceiveBufferSize(2040000);
修改 /etc/sysctl.conf中关于socket缓冲区的配置 :
net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
用sysctrl -p命令使配置生效,解决内核丢包问题
但是如果udp发送速率过大,内核缓冲区即使增大了,服务器应用程序如果处理不过来,仍然会在应用程序那丢包,因此要在应用程序中调大socket的接收缓冲区。
在java中这样调大:
DatagramPacket datagramPacket = new DatagramSocket();
datagramSocket.setReceiveBufferSize(2040000);
相关文章推荐
- Linux UDP严重丢包问题的解决
- linux 系统 UDP 丢包问题分析思路
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- UDP主要丢包原因及具体问题分析
- QT中UDPSocket丢包问题
- UDP大批量传输数据时的丢包问题优化
- LINUX 下tcp 和 udp 套接字收发缓冲区问题
- linux udp组播接收问题及原理分析
- 记录一个UDP收包丢包的问题
- udp 丢包问题以及解决方案
- linux udp组播接收问题及原理分析
- linux 在多网卡下的设备的UDP 组播问题总结
- Linux网络编程-UDP接收数据丢包解决方案
- QT中UDPSocket丢包问题(续)
- UDP接收端缓冲区和丢包问题