Linux下 TCP 连接限制如何解除,解决socket高并发连接数限制,tcp默认1024个连接

这篇具有很好参考价值的文章主要介绍了Linux下 TCP 连接限制如何解除,解决socket高并发连接数限制,tcp默认1024个连接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

苏州私有云文章来源地址https://www.toymoban.com/news/detail-598640.html

当用户使用Linux作为系统时,socket在运行高并发的TCP程序时,可能会遇到连接数量到一定个数后被阻断的情况

我在工作的时候,测试高并发tcp程序(GPS服务器端程序),经过多次测试之后,发现每次建立的连接到达1000个左右

就再也不能建立tcp连接,然后在互联网上搜索,发现linux系统默认的ulimit为1024,这是用户最多可开启的程序数目。

一般一个端口的最高连接为2的16次方65535

第一步,修改/etc/security/limits.conf文件,在文件中添加如下行(*指代系统用户名),

修改Linux系统对用户的关于打开文件数的软限制和硬限制:

soft nofile 65535

hard nofile 65535

第二步,修改/etc/pam.d/login文件,在文件中添加如下行:

session required /lib/security/pam_limits.so

如果是64bit系统的话,应该为 :

session required /lib64/security/pam_limits.so


 

第三步,修改/etc/sysctl.conf文件,在文件中(清楚文件原始内容)添加如下行(修改网络内核对TCP连接的有关限制):

net.ipv4.ip_local_port_range = 1024 65535

net.core.rmem_max=16777216

net.core.wmem_max=16777216

net.ipv4.tcp_rmem=4096 87380 16777216

net.ipv4.tcp_wmem=4096 65536 16777216

net.ipv4.tcp_fin_timeout = 10

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_sack = 0

net.core.netdev_max_backlog = 30000

net.ipv4.tcp_no_metrics_save=1

net.core.somaxconn = 262144

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_max_orphans = 262144

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2


 

第四步,执行如下命令(使上述设置生效):

/sbin/sysctl -p /etc/sysctl.conf

/sbin/sysctl -w net.ipv4.route.flush=1

第五步,执行如下命令(linux系统优化完网络必须调高系统允许打开的文件数才能支持大的并发,默认1024是远远不够的):


 

echo ulimit -HSn 65536 >> /etc/rc.local

echo ulimit -HSn 65536 >>/root/.bash_profile

ulimit -HSn 65536

第六步,重启机器。

通过修改,tcp可以达到20000个连接完全没有问题

苏州私有云

到了这里,关于Linux下 TCP 连接限制如何解除,解决socket高并发连接数限制,tcp默认1024个连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 荣耀路由2S如何解除MAC地址绑定限制?

    荣耀路由2S如何解除MAC地址绑定限制? 有些网络服务提供商会把用户的上网帐号和计算机网卡的MAC地址进行绑定,这样一个上网账号只支持一台设备上网,但是荣耀路由2S却可以通过克隆MAC地址功能解除限定。 解除MAC地址绑定方法 方法一:使用“从旧路由器获取”功能克隆

    2024年02月07日
    浏览(34)
  • TCP Socket Client 测试工具,并发测试

    TCP协议 Socket客户端测试程序 发送数据支持ASCII与16进制格式 可以模拟并发压力测试 创建终端,然后发送数据   工具下载  

    2024年02月12日
    浏览(32)
  • HTTP的并发连接限制和连接线程池

    大量的客户端连接到服务器,会导致服务器端需要大量的维护连接资源,同时需要处理客户端的请求,这是如何高效的执行任务成了一个关键的问题,所以, 并发连接限制和连接线程池 的出现就是为了解决 如何有效地管理连接并同时处理多个请求 。 并发连接限制,又称为

    2024年02月12日
    浏览(29)
  • Linux 解决root用户被限制连接服务器

    使用 root 用户不能链接服务器,密码对,就是连接不上,连接被拒绝 ① sudo passwd root 使用 sudo passwd root 对root用户修改密码 ② su root 修改完成之后,切换到root用户即可使用 ③ ④ 重启 systemctl restart sshd 这里需要注意的是:centos6里面用命令 service ssh restart ,在centos7需要用 sy

    2024年02月11日
    浏览(35)
  • TCP,TCP 连接建立,TCP 连接断开,Socket 编程

    目录 TCP基本认识 TCP 头格式有哪些? 为什么需要 TCP 协议? TCP 工作在哪一层? 什么是 TCP ? 什么是 TCP 连接? #如何唯一确定一个 TCP 连接呢? UDP 和 TCP 有什么区别呢?分别的应用场景是? #TCP 和 UDP 可以使用同一个端口吗? TCP 连接建立 #TCP 三次握手过程是怎样的? 为什么

    2023年04月27日
    浏览(35)
  • Linux: network: tcp:如何主动从外围kill socket ;ss -K;CONFIG_INET_DIAG_DESTROY

    https://www.man7.org/linux/man-pages/man8/ss.8.html https://www.man7.org/linux/man-pages/man7/socket.7.html .diag_destroy = tcp_abort, -K, --kill 这个参数可以强制从外围关闭sockets。如果关闭成功,就会显示这些关闭成功的sockets。如果内核不支持,就会悄悄跳过,支持IPv4和IPv6。

    2024年02月13日
    浏览(27)
  • Linux下网络编程(3)——socket编程实战,如何构建一个服务器和客户端连接

            经过前几篇的介绍,本文我们将进行编程实战,实现一个简单地服务器和客户端应用程序。 编写服务器程序          编写服务器应用程序的流程如下:         ①、调用 socket()函数打开套接字,得到套接字描述符;         ②、调用 bind()函数将套接字

    2024年02月03日
    浏览(47)
  • TCP/IP(十一)TCP的连接管理(八)socket网络编程

    一  socket网络编程  socket 基本操作函数 bind、listen、connect、accept、recv、send、select、close ①  针对 TCP 应该如何 Socket 编程? ②   listen 时候参数 backlog 的意义? ③  accept 发生在三次握手的哪一步? ④   客户端调用 close 了,连接是断开的流程是什么? ⑤  没有 accept,能建立 T

    2024年02月07日
    浏览(41)
  • 如何限制请求的并发数量

    需求:当前端同时发出多个api请求,在前端对请求的并发数量进行限制,做到同时只能处理有限个请求任务 设计 Scheduler 类 对需要发送的请求进行统一管理 类中配置最大并发数 “max”,并记录正在执行的请求数目 “count” 通过 await + Promise 对超出限制数量时的请求进行阻塞

    2024年02月13日
    浏览(27)
  • 【Linux】软连接和硬链接:创建、管理和解除链接的操作

    什么是软链接 软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件。它的作用是间接指向一个文件或目录。如果软链接的源文件被删除或移动了,软链接就打不开了。 什么是硬链接 硬链接(Hard Link)指通过索引节点来进行链接。在Linux系统中,每个文件都有一

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包