源码技术
php
java
python
Linux
当前位置:
首页
>
Linux
>linux服务器参数学习
linux服务器参数学习
2026-09-06 03:27:21
linux服务器参数学习
点击上方“IT那活儿
”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
Linux上能打开的最大文件数量
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的方式修改内核参数。
vim /etc/sysctl.conf
fs.file-max=1100000 // 系统级别设置成110万,多留点buffer
fs.nr_open=1100000 // 进程级别也设置成110万,因为要保证比 hard nofile大
配置生效sysctl -p:
vim /etc/security/limits.conf // 用户进程级别都设置成100完
soft nofile 1000000
hard nofile 1000000
"too many open files" 报错是怎么回事
因为每打开一个文件(包括socket),都需要消耗一定的内存资源。为了避免个别进程不受控制的打开了过多文件而让整个服务器奔溃,Linux对打开的文件描述符数量有限制。如果你的进程触发到内核的限制,那么"too many open files" 报错就产生了。
可以通过修改fs.file-max 、soft nofile、fs.nr_open这三个参数的值来修改进程能打开的最大文件描述符数量。
Linux服务器最大能支持连接数量参数
由于TCP连接本质上可以理解为是client-server端的一对socket内核对象,那么从理论上将应该是【2^32 (ip数) * 2^16 (端口数)】条连接(约等于两百多万亿)。但是实际上由于受其他软硬件的影响,我们一台服务器不可能能建立这么多连接(主要是受CPU和内存限制)。
如果只以ESTABLISH状态的连接来算(这些连接只是建立,但是不收发数据也不处理相关的业务逻辑)那么一台服务器最大能建立多少连接呢?
以一台4GB内存的服务器为例,这种情况下,那么能建立的连接数量主要取决于【内存的大小】(因为如果是)ESTABLISH状态的空闲连接,不会消耗CPU(虽然有TCP保活包传输,但这个影响非常小,可以忽略不计)。
我们知道一条ESTABLISH状态的连接大约消耗【3.3KB内存】,那么通过计算得知一台4GB内存的服务器,【可以建立100w+的TCP连接】(当然这里只是计算所有的
连接都只建立连接但不发送和处理数据的情况,如果真实场景中有数据往来和处理(数据接收和发送都需要申请内存,数据处理
便需要CPU),那便会消耗更高的内存以及占用更多的CPU,并发不可能达到100w+)。
END
本文作者:
魏越纪
(
上海新炬中北团队)
本文来源:“IT那活儿”公众号
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:596563534@qq.com 。
Linux磁盘维护命令,一篇讲透!
瑞芯微Linux驱动开发实战项目分享
最新文章
Linux磁盘维护命令,一篇讲透!
Java只是入场券,AI才是定价权
[校大]27届广西大学JAVA简历:大厂简历通过率10%
放弃手搓进度条!Python用wget库实现极简下载,一行代码就够了
python就要跟大佬学少走弯路
手把手教你用Python和OpenCV搭建一个半自动标注工具(详细步骤 + 源码)
Python Flask+Echarts霸王茶姬销量可视化
看似难上手?AI编程其实就靠这10款Python神器
激活码安装教程 六张图解决 #python #编程 #激活码 #大学生 #工科 #电脑 #准大一 #计算机
别再只用2D图表了!手把手教你用Python绘制三维动态数据
热门文章
零基础学编程必看!C语言和Python到底学哪个?适配专业+就业方向全解析
我愿称之为python最强背记手册,64页,PDF超详细笔记
这可能是全网最好懂的 Python 协程教程(附代码)
第2.2章:一篇学完Python的字符串与输入输出
策略文件夹乱成粥?一个Python脚本自动整理代码、配置、日志、回测报告,清爽到不敢相信
知道为什么普通人不能学Python技术吗?不妨听听编程大佬们的所作所为便能略知一二.这些编程大佬们号称无所不能黑!!……
学习python必练的80个实战项目(附源码)
前端开发者的 Python 控制流:换一套语法,保留你的工程直觉
Scratch升Python不是越早越好!这份诊断指南,帮你避开少儿编程最大的坑
零基础自学 Python,看完这本书直接上手做爬虫、小游戏
随机文章
10个月宝宝每天需要喝多少奶粉?
5个杀手级的Python自动化脚本!
Python爬虫38个经典操作,练完你真的很厉害了!
投入1小时,节省100小时:Python自动化实战指南
Python经典556道例题练习,练完你的python就牛了!
《Python深度学习基于PyTorch(第2版)》—习题集第4集
16种Python数据分析算法,解决了80%的问题
Python游戏编程 第4集拳头角色
Python深度学习基于PyTorch-第2版-习题集(04)
Python自学避坑指南:零基础常犯的10个错误,助你少走半年弯
一起学Python第119天:Matplotlib 函数速查手册