源码技术
php
java
python
Linux
当前位置:
首页
>
Linux
>Linux服务器参数学习
Linux服务器参数学习
2026-09-08 08:16:25
Linux服务器参数学习
点击上方“IT那活儿
”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
Linux上能打开的最大文件数量
1.1 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
2.2 "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内核社区对AI的态度和做法值得借鉴
最新文章
Linux操作系统-权限管理
Linux 内核新漏洞 “Bad Epoll” 允许非特权用户获取 root 权限,Android 系统也受到影响
28 星新项目!单文件 Python 把自进化 AI 智能体塞进 1.44MB 软盘和路由器,极客速看!
2026年学python最舒服的姿势!看漫画学python简直不要太牛了!
【python3.10.1setup】python3.10.1setup完整激活安装包下载与 安装说明
今晚开课|二级Python免费备考规划公开课
Python基础之第14节for与 while区别总结专题
影刀RPA实战:如何用Python脚本批量搞定图片智能裁切
代码写得太烂被同事吐槽?这6个Python风格规范救了我
AI会写代码了,还需要学Python吗?答案让你意外
热门文章
AI机器学习与深度学习|Python集成机器学习、CNN/U-Net、Transformer扩散、SHAP因果解释、Vibe Coding编程、Hermes智能体与图神经网络
2026秋招已至,Python仍是“入场券”,这份宝藏笔记请收好
这个开源工具一键去掉视频水印,539行Python搞定
用Python自动回复微信消息,差点被女朋友发现
ArcGIS Python Addin 开发实战:三普及补充耕地质量鉴定评价工具完整流程
Python 置参数与关键字参数:你真的会"喂数据"给函数吗?
【体系教程】基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局
新书推荐 | 《Python程序设计实验教程》
(五)在MCU上写Python,这些坑我帮你踩过了——MicroPython语言实战指南
用了一周Codex后,我默默打开了Python教程
随机文章
10个月宝宝每天需要喝多少奶粉?
python数据可视化技巧的100个练习 -- 13. 随机数据的密度图
MySQL+Python:霸王茶姬销量可视化分析深度揭秘
2026全国青少年信息素养大赛复赛Python小高组真题 (7月11)
少儿编程Python: 多重筛选条件如何实现?解析列表推导式多条件判断编写逻辑
【python3.11.3setup】python3.11.3setup完整激活安装包下载与 安装说明
学习Python的人是熟悉anaconda的,哈哈[机智][机智]
Python(十六) 中的 lambda 匿名函数
Python零基础教程:元组(Tuple)详解,零基础必掌握的安全数据容器!
彻底疯了!不用死磕语法,普通人3天搞定Python
从Java到Python,Linux装环境这件事我给你们整明白了