zoukankan      html  css  js  c++  java
  • 单机对外连接数 扩大

    ,当模拟TCP client对外发起连接数达到28000左右时,开始大量抛如下异常:

        java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.connect0(Native Method)
        at sun.nio.ch.Net.connect(Net.java:364)
        at sun.nio.ch.Net.connect(Net.java:356)
        at sun.nio.ch.UnixAsynchronousSocketChannelImpl.implConnect(UnixAsynchronousSocketChannelImpl.java:326)
        at sun.nio.ch.AsynchronousSocketChannelImpl.connect(AsynchronousSocketChannelImpl.java:195)
        at com.aliyun.talk.mon.stack.comm.AsyncConnection.connect(AsyncConnection.java:85)
        研究发现,Linux对外的随机分配端口是由一定限制的,理论上单机对外的端口最大值为65535,除去一些保留端口和被占用端口外,也应该在6W左右,但实际上单机建立对外连接时,默认不超过28232个连接。
        执行以下命令就很清楚原因了:
        $ cat /proc/sys/net/ipv4/ip_local_port_range
    输出结果为:
        32768   61000
        这就是Linux随机分配端口的范围,如果在该范围内有被占用的端口,那么连接数肯定小于28232.如果想更改这个范围,可以执行以下命令:
        # echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range
  • 相关阅读:
    从 http 升级到 https 过程中遇到的一些问题
    Java 对象,数组 与 JSON 字符串 相互转化
    jQuery 事件探秘
    eclipse 添加 hibernate 插件
    struts2 + jquery + json 简单的前后台信息交互
    匿名类、匿名方法、扩展方法
    禁用右键
    JS聊天室
    MVC知识汇总
    知识点汇总
  • 原文地址:https://www.cnblogs.com/dracula/p/2428676.html
Copyright © 2011-2022 走看看