当前位置: 首页 > Linux

如何判断TCPsocket接收是否及时

时间:2023-04-06 20:50:04 Linux

在服务中,如果一个socket传输的数据很多,可能接收不及时,缓冲区满了,延迟增加;如何判断缓冲区状态netstat-nt|grep-E'8101|Recv-Q'结果中Recv-Q为当前接收缓冲区的字节数。如果继续保持不变,不能归零,就会出现节目没有及时接收的情况;当一个线程(1个CPU)负责多个socket.recv时会有接收性能问题;程序中socket.recv接收函数建议使用单线程,接收和业务处理会异步进行。如何设置socket的缓冲区大小socket.setsockopt(xx,xx)socket的默认大小linux系统手册的默认值cat/proc/sys/net/core/rmem_default-cat/proc/sys/net/core/wmem_defaulttcpsocket的默认配置cat/proc/sys/net/ipv4/tcp_wmemcat/proc/sys/net/ipv4/tcp_rmemtcpbuffer的最大值配置cat/proc/sys/net/core/rmem_max时设定值超过最大值,则最终值=最大值的2倍