伪静态 网站如何扫描,河北省邯郸市,郑州网站公司哪家好,湛江搜索引擎网站推广前言
在linux系统中一切皆文件#xff0c;每当有一个tcp连接建立#xff0c;那么就会打开一个文件描述符。在Linux系统中#xff0c;文件描述符打开的个数是有限制的#xff0c;当超过这个限制的时候内核就会跑出too many open files异常。
linux上能打开的最大文件…前言
在linux系统中一切皆文件每当有一个tcp连接建立那么就会打开一个文件描述符。在Linux系统中文件描述符打开的个数是有限制的当超过这个限制的时候内核就会跑出too many open files异常。
linux上能打开的最大文件数量受三个参数限制分别是
fs.file-max 系统级别参数该参数描述了整个系统可以打开的最大文件数量。但是root用户不会受该参数限制比如现在整个系统打开的文件描述符数量已达到fs.file-max 此时root用户仍然可以使用ps、kill等命令或打开其他文件描述符
soft nofile进程级别参数限制单个进程上可以打开的最大文件数。只能在Linux上配置一次不能针对不同用户配置不同的值
fs.nr_open进程级别参数限制单个进程上可以打开的最大文件数。可以针对不同用户配置不同的值
这三个参数之间有互相耦合的关系配置是需要注意以下三点
如果想加大soft nofile那么hard nofile参数值也需要一起调整。如果因为hard nofile参数值设置的低那么soft nofile参数的值设置的再高也没有用实际生效的值会按照二者最低的来。如果增大了hard nofile那么fs.nr_open也都需要跟着一起调整fs.nr_open参数值一定要大于hard nofile参数值。如果不小心把hard nofile的值设置的比fs.nr_open还大那么后果比较严重。会导致该用户无法登录如果设置的是*那么所有用户都无法登录如果加大了fs.nr_open但是是用的echo “xxx” …/fs/nr_open命令来修改的fs.nr_open的值那么刚改完可能不会有问题但是只要机器一重启那么之前通过echo命令设置的fs.nr_open值便会失效用户还是无法登录。所以非常不建议使用echo的方式修改内核参数
一、一台服务器最大能支持多少连接
TCP连接从根本上来看其实是客户端和服务器同时维护的一组socket内核对象就是四元组。如果只以ESTABLISH状态的连接来算只是建立连接但是不收发数据也不处理业务逻辑一台服务器支持多少连接以4G内存的服务器为例子。
一条ESTABLISH状态的连接大约消耗【3.3KB内存】那么通过计算得出【可以建立100w的TCP连接】当然这里理论计算的数量实际不可能有这么多因为服务器还需要提供计算以及收发数据的能力这些都是要消耗内存的。
服务器开销的大头往往不是连接本身而是处理具体业务。
二、一台客户端最大能支持多少连接
客户端与服务器建立连接服务会消耗客户端的一个端口一台机器的端口有65535个。
如果什么都不考虑的话那么一台计算器是可以建立65535个TCP连接实际情况不可能建立这么多建立连接的个数受内核参数net.ipv4.ip_local_port_range限制如果要修改client所能使用的端口范围可以修改这个内核参数的值。