博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux对外连接端口数限制
阅读量:6972 次
发布时间:2019-06-27

本文共 907 字,大约阅读时间需要 3 分钟。

这两天做压力测试,发现了一个问题,当模拟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

      本文转自Tenderrain 51CTO博客,原文链接http://blog.51cto.com/tenderrain/1753399:,如需转载请自行联系原作者
你可能感兴趣的文章
《剑指Offer》题目:变态跳台阶
查看>>
11-23网页基础--JavaScript基础知识
查看>>
python爬虫小结1
查看>>
BZOJ 2693 jzptab ——莫比乌斯反演
查看>>
自定义转场动画库
查看>>
《图像处理实例》 之 疏密程度统计
查看>>
归并排序(分治)
查看>>
mysql 添加索引语句
查看>>
bootstrap popover 如何在hover状态移动到弹出上不消失
查看>>
linux tmux 简单操作
查看>>
【状压dp】AC Challenge
查看>>
Oracle Install
查看>>
错误记录 "MongoClient opened before fork. Create MongoClient "
查看>>
第十二次作业
查看>>
第136天:Web前端面试题总结(理论)
查看>>
iOS开发-模板方法模式
查看>>
算法-最大连续子序列和
查看>>
NodeJS之Mac初体验
查看>>
勾股数
查看>>
zoj 1597 Circular Area
查看>>