我正在编程一个服务器,我的连接数量似乎是有限的,因为即使我将连接数量设置为“无限制”,我的带宽也不会饱和。
如何增加或消除我的Ubuntu Linux机器一次可以打开的最大连接数?这是操作系统限制的,还是路由器或ISP限制的?或者是其他原因?
发布于 2012-10-13 02:36:36
为了改进derobert给出的答案,
您可以通过测试nf_conntrack_max来确定操作系统的连接限制。
例如: cat /proc/sys/net/netfilter/nf_conntrack_max
您可以使用以下脚本来计算到给定范围的tcp端口的tcp连接数。默认为1-65535。
这将确认您是否达到了操作系统连接限制的上限。
这是脚本。
#!/bin/bash
OS=$(uname)
case "$OS" in
'SunOS')
AWK=/usr/bin/nawk
;;
'Linux')
AWK=/bin/awk
;;
'AIX')
AWK=/usr/bin/awk
;;
esac
netstat -an | $AWK -v start=1 -v end=65535 ' $NF ~ /TIME_WAIT|ESTABLISHED/ && $4 !~ /127\.0\.0\.1/ {
if ($1 ~ /\./)
{sip=$1}
else {sip=$4}
if ( sip ~ /:/ )
{d=2}
else {d=5}
split( sip, a, /:|\./ )
if ( a[d] >= start && a[d] <= end ) {
++connections;
}
}
END {print connections}'
https://stackoverflow.com/questions/410616
复制相似问题