一、 文件数限制修改
1、用户级别
查看Linux系统用户最大打开文件限制:
# ulimit -n
1024

(1) vi /etc/security/limits.conf
mysql soft nofile 10240
mysql hard nofile 10240
其中mysql指定了要修改哪个用户的打开文件数限制。
可用'*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;10240则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)。

(2) vi /etc/pam.d/login
session required /lib/security/pam_limits.so
这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制)。
而pam_limits.so模块就会从/etc/security/limits.conf文件中读取配置来设置这些限制值。

2、Linux系统级别
查看Linux系统对同时打开文件数的硬限制:
# sysctl -a|grep file-max
fs.file-max = 65535
这表明这台Linux系统最多允许同时打开(即包含所有用户打开文件数总和)65535个文件,是Linux系统级硬限制,所有用户级的打开文件数限制都不会超过这个数值。
通常这个系统级硬限制是Linux系统在启动时根据系统硬件资源状况计算出来的最佳的最大同时打开文件数限制。

(1) vi /etc/sysctl.conf
fs.file-max = 1000000
立即生效:
# sysctl -p

二、 网络端口限制修改
查看Linux系统最大追踪TCP连接数量:
# sysctl -a | grep ipv4.ip_conntrack_max
net.ipv4.ip_conntrack_max = 20000
这表明系统将对最大跟踪的TCP连接数限制默认为20000。

查看Linux系统端口范围:
# sysctl -a | grep ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 1024 30000
注意:
每个TCP客户端连接都要占用一个唯一的本地端口号(此端口号在系统的本地端口号范围限制中),如果现有的TCP客户端连接已将所有的本地端口号占满。将不能创建新的TCP连接。

(1) vi /etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024    65535
net.ipv4.ip_conntrack_max = 20000
如果按上述端口范围进行设置,则理论上单独一个进程最多可以同时建立60000多个TCP客户端连接。
如果按上述参数进行设置,则理论上单独一个进程最多可以同时建立20000多个TCP客户端连接。

备注:
对mysql用户可同时打开文件数设置为10240个;
将Linux系统可同时打开文件数设置为1000000个(一定要大于对用户的同时打开文件数限制);
将Linux系统对最大追踪的TCP连接数限制为20000个(但是,建议设置为10240;因为对mysql用户的同时打开文件数已经限制在10240个;且较小的值可以节省内存);
将linux系统端口范围配置为1024~30000(可以支持60000个以上连接,不建议修改;默认已经支持20000个以上连接);

综合上述四点,TCP连接数限制在10140个。
这10240个文件中还得除去每个进程必然打开的标准输入,标准输出,标准错误,服务器监听 socket,进程间通讯的unix域socket等文件。

因此,当需要对TCP连接数进行调整时只需要调整ulimit参数。

Linux下查看tcp连接数及状态命令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

转载于:https://www.cnblogs.com/luckyall/p/6557113.html

Linux下TCP最大连接数受限问题相关推荐

  1. linux普通用户tcp最大连接数查询,如何测试Linux下tcp最大连接数限制详解

    前言 关于TCP服务器最大并发连接数有一种误解就是"因为端口号上限为65535,所以TCP服务器理论上的可承载的最大并发连接数也是65535". 先说结论:对于TCP服务端进程来说 ...

  2. linux查看一个进程最大tcp连接数,linux修改TCP最大连接数

    环境 操作系统: oracle-linux7.3 修改系统支持的最大TCP连接 最大tcp连接数和系统允许打开的最大文件数,用户允许打开的最大文件数,TCP网络连接可用的端口范围有关,取上述的最小值: ...

  3. linux下TCP通信简单实例

    linux下TCP通信简单实例 基于TCP(面向连接)的socket编程,分为服务器端和客户端 服务器端的流程如下: (1)创建套接字(socket) (2)将套接字绑定到一个本地地址和端口上(bin ...

  4. linux id高 负载高,linux下的rsync连接数突然增高,负载增高导致服务登录失败

    问题:测试centos5.3系统下的rsync连接数.linux下的rsync连接数突然增高,负载增高导致服务登录失败. 软硬件环境如下: 四台2个四核的CPU,8G内存的刀片服务器,只提供rsync ...

  5. LINUX 下tcp 和 udp 套接字收发缓冲区的大小决定规则 .

    const int udp_recvbufsize = 384 * 1024 ; int result = ::setsockopt(m_hSocket, SOL_SOCKET, SO_RCVBUF, ...

  6. linux udp 端口测试,RAKsmart:Linux下TCP/UDP 端口测试及验证方法说明

    RAKsmart:Linux下TCP/UDP 端口测试及验证方法说明2020-06-11 在 Linux 系统中,有时需要在系统中测试端口的连通性,以便确认系统的TCP.UDP协议栈是否可以正常运行. ...

  7. linux 开通udp 端口号,Linux 下 TCP/UDP 端口测试及验证方法说明

    Linux 下 TCP/UDP 端口测试及验证方法说明 在云服务器 ECS Linux 系统中,有时需要在系统中测试端口的连通性,以便确认系统的TCP.UDP协议栈是否可以正常运行.本文对此进行简要说 ...

  8. [转]linux下TCP连接占用的资源

    维持一个tcp连接需要占用哪些资源,下面就总结一下最近学习的内容,不足之处,请读者多多指正. 一个tcp连接需要:1,socket文件描述符:2,IP地址:3,端口:4,内存 TCP连接的四元组:源I ...

  9. 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

最新文章

  1. [转]linux文件同步工具Unison的使用
  2. MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
  3. CSP认证 201503-3 节日[C++题解]:模拟、枚举、日期题、日期模板题
  4. 如何在 Windows XP 中设置、查看、更改或删除文件和文件夹的特殊权限
  5. 抓取html中用到的css_如何使用HTML和CSS制作像《星球大战》一样的抓取文字
  6. 飞鸽传书 扩散全身的
  7. 个人用户升级鸿蒙,老用户等到了!鸿蒙升级标准确定,“三岁”以下机型全更新...
  8. 用html语言制作古诗网页,唐诗宋词网页设计.docx
  9. 谁说SELINUX,IPTABLES,SAMBA不能共存?
  10. Acer 4750 安装黑苹果_黑苹果 MacOS 10.15 Catalina 最新安装教程
  11. java excel 列,使用Java读取Excel工作表的单列
  12. bzoj 1689: [Usaco2005 Open] Muddy roads 泥泞的路(模拟)
  13. autoreconf:未找到命令
  14. 使用MicroPython开发ESP32(06):WebServer功能实现简单说明
  15. A3C的算法原理和算法流程
  16. UVA10066(DP)
  17. 国内主要的PDM产品关于浏览圈阅模块的总结(2006)
  18. keras教程_Keras教程
  19. 微信6.6.7版本摇塞子破解思路(居多图)
  20. mysql如何加索引的时候不锁表

热门文章

  1. 知识梳理——HTML篇
  2. Sqlserver循环嵌套
  3. chm文件无法正常显示
  4. Java读取、创建xml(通过dom方式)
  5. 光脚丫学LINQ(029):如何将列表示为类成员
  6. unittest简单使用的介绍
  7. 项目托管到Github
  8. 分布式系统用户登录路由
  9. java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...
  10. SqlDataAdapter上调用存储过程