zoukankan      html  css  js  c++  java
  • Linux tcp socket相关参数设置

    内容主要从网络上摘抄的,稍作了一下整理

    来源1:

    http://www.cnblogs.com/alli/archive/2011/01/11/1932599.html

    1.进程打开文件数限制

     ulimit –n   == ulimit –n 1000000

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

     典型现象:当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 协议栈参数

     待续...

     

  • 相关阅读:
    [no_code][Beta]事后分析
    [no_code][Beta]项目展示博客
    [no_code][Beta]测试报告
    [no_code][Beta]发布声明报告
    [no code][scrum meeting] Beta 12
    [no code][scrum meeting] Beta 11
    [no code][scrum meeting] Beta 10
    [no code][scrum meeting] Beta 9
    [no code][scrum meeting] Beta 8
    [no_code][Beta] 中期组内总结
  • 原文地址:https://www.cnblogs.com/yizhinantian/p/2004347.html
Copyright © 2011-2022 走看看