您的位置:首页 > 理论基础 > 计算机网络

Linux tcp socket相关参数设置

2011-04-03 12:38 316 查看
内容主要从网络上摘抄的,稍作了一下整理

来源1:

/article/5764916.html

1.进程打开文件数限制

ulimit –n == ulimit –n 1000000

这表示当前用户的每个进程最多允许同时打开1024个文件,这1024个文件中还得除去每个进程必然打开的标准输入,标准输出,标准错误,服务器监听socket,进程间通讯的unix域socket等文件,那么剩下的可用于客户端socket连接的文件数就只有大概1024-10=1014个左右。也就是说缺省情况下,基于Linux的通讯程序最多允许同时1014个TCP并发连接。

典型现象:当connect,accpet 1000个左右连接后开始失败。

2、网络内核对TCP连接的有关限制

2.1 端口号范围限制

net.ipv4.ip_local_port_range = 1025 65000

到同一个主机的连接,超过端口用完后就会失败,这就是我们经常在网上看到的,说客户端最多只能向服务器发起6万多个连接。

2.2 iptable netfilter

第二种无法建立TCP连接的原因可能是因为Linux网络内核的IP_TABLE防火墙对最大跟踪的TCP连接数有限制。此时程序会表现为在connect()调用中阻塞,如同死机,如果用tcpdump工具监视网络,也会发现根本没有TCP连接时客户端发SYN包的网络流量。

net.ipv4.ip_conntrack_max = 10240

3.进程号

cat /proc/sys/kernel/pid_max

But you can change that too; on a 32-bit machine that'd be 2**22 as an absolute upper limit,

so:
% sudo bash -c 'echo 4194303 > /proc/sys/kernel/pid_max'




4. tcp 协议栈参数


待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: