zoukankan      html  css  js  c++  java
  • Linux对外连接port数限制

    这两天做压力測试,发现了一个问题,当模拟TCP client对外发起连接数达到28000左右时,開始大量抛例如以下异常:

        java.net.BindException:Cannot assign requested address

        atsun.nio.ch.Net.connect0(Native Method)

        atsun.nio.ch.Net.connect(Net.java:364)

        atsun.nio.ch.Net.connect(Net.java:356)

        atsun.nio.ch.UnixAsynchronousSocketChannelImpl.implConnect(UnixAsynchronousSocketChannelImpl.java:326)

        atsun.nio.ch.AsynchronousSocketChannelImpl.connect(AsynchronousSocketChannelImpl.java:195)

        atcom.aliyun.talk.mon.stack.comm.AsyncConnection.connect(AsyncConnection.java:85)

        研究发现。Linux对外的随机分配port是由一定限制的。理论上单机对外的port最大值为65535。除去一些保留port和被占用port外,也应该在6W左右。但实际上单机建立对外连接时。默认不超过28232个连接。

        运行下面命令就非常清楚原因了:

        $ cat /proc/sys/net/ipv4/ip_local_port_range

    输出结果为:

        32768  61000

        这就是Linux随机分配port的范围,假设在该范围内有被占用的port,那么连接数肯定小于28232.假设想更改这个范围,能够运行下面命令:

        #echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range




  • 相关阅读:
    ubuntu9.04 解决关机beep声音
    『转』饯行:理想主义终结年代的七种兵器
    尼康数码单反DX Nikkor镜头介绍
    Nikkor镜头介绍
    [转]IDL中全局变量的处理
    APSC画幅
    开心时刻1
    C# 相对路径
    使用C#语言,从Excel2007中读取数据,并显示到Form中的DataGridView。
    C# 讀取Excel、xlsx文件Excel2007
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7122606.html
Copyright © 2011-2022 走看看