Jon*_*tez 10 c sockets networking listen
在典型的C网络服务器实现中,可以使用listen设置接受暂挂队列的大小.当新连接收入并且队列中没有更多空间时,ECONNREFUSED将发送到客户端或请求被忽略.
有没有办法知道这个队列的状态?这很重要,因为在高负载基于事件的守护进程中,我们正在检测来自客户端的一些重试,并且我们怀疑此队列已满并且忽略了连接尝试.
提前致谢.
小智 8
在linux中:/ proc/sys/net/ipv4/tcp_max_syn_backlog:
记住的连接请求的最大数量,但仍未收到来自连接客户端的确认.
对于内存超过128Mb的系统,默认值为1024,对于低内存机器,默认值为128.如果服务器出现过载,请尝试增加此数量.
/ proc/sys/net/core/somaxconn:socket listen()backlog的限制,在用户空间中称为SOMAXCONN.默认为128.另请参阅tcp_max_syn_backlog以获取TCP套接字的其他调整.
这些是相关的sysctls ..在openbsd上,我现在坐着一个快速的sysctl -a显示:net.inet.ip.maxqueue = 300