运维最全Linux文件句柄限制总结,2024年最新花三分钟看完这篇文章你就懂了

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

网上说什么的也有,你抄我的我抄你的,也是醉了,故自己综合查阅的资料,根据自己的理解和判断以及部分的实践整理下吧,也不敢保证都是对的,如果有比较大的错误,希望看到这篇文章的你提出来,大家共同进步!

关于什么是文件句柄,这里不做讨论,其实linux中没有文件句柄,叫做文件描述符fd

超过最大句柄限制,报错:java.io.IOException: Too many open files。

TCP连接也会消耗句柄

查看

================================================================

用户级别(nofile)


ulimit -n 当前用户的当前session(即当前shell窗口)最大限制 (如果多个shell窗口,每个都能到达最大限制,和单个进程无关

单个进程级别(nr_open )


cat /proc/sys/fs/nr_open linux系统中规定每个进程最大限制

系统级别(file-max)


cat /proc/sys/fs/file-max 系统级别最大限制(所有进程打开的不能超过)

下面的可简单看,可忽略

cat /proc/sys/fs/file-nr 当前系统已经占用的句柄

[root@izm3mkp4g43hdqz ~]# cat /proc/sys/fs/file-nr

1952 0 184294

结果说明:第一个数表示当前系统已分配的文件描述符数(文件句柄数),第二个数为分配后已释放的文件描述符数(当前不再使用的文件描述符数),第三个数为最大文件描述符数,等于file-max。

lsof -n |grep 1549 -c

某个进程已经占用的句柄

修改

================================================================

用户级别(nofile)


  • 临时生效(重启失效) :

ulimit -n 65535

修改当前的用户级别的,但是生效范围是当前的session(即当前的shell窗口),即关掉这个窗口,再次打开就不生效了。

  • 永久生效

如何每次都生效?

修改环境变量 将 ulimit -n 65535 加入到 /etc/profile 文件,并source /etc/profile使生效,其实是障眼法,相当于每个用户进来执行一次ulimit -n 65535这个命令

如何更好的每次都生效(推荐)?

修改/etc/security/limits.conf文件

  • soft nofile 32768 #限制单个进程最大文件句柄数(到达此限制时系统报警)

  • hard nofile 65536 #限制单个进程最大文件句柄数(到达此限制时系统报错)

//* 是所有用户的意思 ,也可以改成 xiaoming soft nofile 32768 就是针对于小明用户的

ulimit -Sn 能查看或设置soft limit ulimit -Hn能查看或设置hard limit

ulimit -n默认查看的是soft limit

soft limit不能大于hard limit

单个进程级别(nr_open )


cat /proc/sys/fs/nr_open能够查看单个进程级别的

hard limit一定不能大于/proc/sys/fs/nr_open,否则用户注销后无法正常登录。

为什么不能大于?我是这么理解的:当前用户想要操作这个进程的最大文件数,但是你再大也不能超过系统级别的单个进程的限制,即nr_open

如果想要大于怎么办?那就提前修改nr_open的值:

  • 临时生效(重启失效) :

echo 2000000 > /proc/sys/fs/nr_open

  • 永久生效:

sysctl -w fs.nr_open=100000000 或者 直接写入sysctl.conf文件

fs.nr_open=100000000

运行命令:/sbin/sysctl -p 使配置生效

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

nux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值