linux hosts文件如何修改_3 种方法教你在 Linux 中修改打开文件数量限制

2bc73c7e42b9f626cfbbdec622e20f45.png

18e7ff338f55a62c5850129b2126d7c9.png当文件被打开访问时,操作系统临时分配一个名为文件句柄的数字。主内存的一个特殊区域是为文件句柄预留的,这个区域的大小决定了一次可以打开多少个文件。

3b897625bb9bde2981091579bd6752d0.png

Linux上的进程受到许多限制,这些限制也阻碍它们正确地执行,而且每个进程都有几个与之相关的限制。shell限制程序可以同时打开的文件句柄的数量。18e7ff338f55a62c5850129b2126d7c9.png系统环境

Centos7

为什么要限制打开文件的数量?

因为操作系统需要内存来管理每个文件,所以可以打开的文件数可能会受到限制。由于程序也可以关闭文件处理程序,它可以创建任意大小的文件,直到所有可用磁盘空间都已满为止。在这种情况下,安全性的一个方面是通过施加限制来防止资源耗尽。

可以看到Linux系统中打开的文件描述符的最大数量,如下所示:

[root@localhost ~]# cat /proc/sys/fs/file-max 
180965

该值显示用户每次登录会话可以打开的文件数,你会注意到,结果可能会因系统而异。出于某些原因,可能需要增加限制集的值。这就是为什么Linux系统提供了修改这些限制的可能性(增加或减少),方法是更改每个进程和每个系统打开文件数的最大值。

方法一:使用ulimit命令

ulimit命令可用来增加在shell中打开文件的数量。这个命令是系统内置命令,因此它只影响bash和从它启动的程序。ulimit语法如下:

ulimit  [选项] [限制数值]
下面选项决定了什么是有限的:
  • -a 显示当前所有限制的报告
  • -f (文件限制)限制shell能创建文件的大小
  • -n 限制打开的文件描述符的数量。
  • -H-S 它们分别被设置为硬限制和软限制。硬限制可能不会随之增加,但软限制可能会增加。如果没有提供任何选项,ulimit将同时设置硬限制和软限制。
查看当前打开文件的软限制,可以使用下面命令:
[root@localhost ~]# ulimit -a |grep open
open files                      (-n) 1024
或者
[root@localhost ~]# ulimit -n
1024
如果需要查看硬限制,适应下面命令:
[root@localhost ~]# ulimit -Hn
4096
下面修改打开文件的数量:
[root@localhost ~]# ulimit -n 2048
然后来查看一下:
[root@localhost ~]# ulimit -Hn
2048
[root@localhost ~]# ulimit -Sn
2048

53a813e94d50aa728cdb51f1720139ff.png

发现,设置ulimit 值的时候,没有指定-H或者-S,两个限制都会设定相同的值。

现在的问题是,如果退出登录或者重新启动计算机,该值将被重置。请记住,要使生效,需要编辑用户的.bashrc或者.bash_profile配置文件,通过将ulimit命令行添加到文件的末尾,可以使参数生效。

[root@localhost ~]# echo "ulimit -n 2048" >> ~/.bashrc

cb928721132e4c375793e87c65d8f818.png

方法二:使用PAM模块

最好通过名为pam_limits的PAM模块实现这种限制。需要通过编辑/etc/security/limits.conf文件来配置它。这个文件包含四个基本字段:

domain:描述了在哪些实体中应用限制。它可以是user、group(组名前面加@表示组)或匹配所有用户,使用(*)通配符。通配符不适应与root用户。

type:这里表示限制为硬限制还是软限制?硬限制是由系统管理员添加的,在任何情况下都不能超过,而用户可以临时超过软限制。还可以使用破折号-来表示一个限制是硬的和软的。请注意,软限制可以增加到硬限制的值

type:它指定被限制条目的类型。可以是core(限制核心文件大小(KB)),data(最大数据大小(KB)),fsize(最大文件大小(KB)),nofile(打开的文件描述符的最大数目),nproc(最大进程数),等类型。更多类型可以使用man limits.conf查看。

type: 这里使填写应用限制的数值。

下面实例可以对照了解一下。

[root@localhost ~]# tail -12 /etc/security/limits.conf 
#
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

# End of file

2722e3f3560a0f1f9b665a1e8477db6e.png

要编辑所有用户打开文件的最大数量,可以在文件末尾添加以下行:
[root@localhost ~]# vim /etc/security/limits.conf 
* hard nofile 20000
* soft nofile 15000

f5b24728eb9d48935646a7d8751817cf.png

之后,需要编辑文件/etc/pam.d/login配置文件,在最后添加以下一条内容:
[root@localhost ~]# vim /etc/pam.d/login 
session    required pam_limits.so

969a16a6df46bacc6453e78a972ab8ea.png

保存文件。然后退出登录,或者重启系统。可以看到软限制和硬限制的值都修改成功了:
[root@localhost ~]# ulimit -Sn
15000
[root@localhost ~]# ulimit -Hn
20000
方法三:查看系统最大打开文件描述符数量:
[root@localhost ~]# cat /proc/sys/fs/file-max 
180965
临时设置该值:
[root@localhost ~]# echo "1000000" > /proc/sys/fs/file-max 

59dc6887a758eab65b5438ab96b86fe2.png

永久性设置,需要在/etc/sysctl.conf中设置,并让它生效:
[root@localhost ~]# echo "fs.file-max = 1000000" >> /etc/sysctl.conf 
[root@localhost ~]# sysctl -p
fs.file-max = 1000000
总结

所有进程打开的文件描述符数量不能超过/proc/sys/fs/file-max。单个进程打开的文件描述符数不能超过user limit中nofile的soft limit。nofile的soft limit不能超过其hard limit。

7efef5adfaf161f061fd7359a7da5a7c.png

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

e8377fc51b2a6ca06adf9573561053fb.png

刘遄老师QQ:5604922

Linux技术交流群:193666693

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!

80057d928c11eeab8f47e8af4354e7d7.gif

点分享

15065b1f58e8ca3e733d02396c58eb3d.gif

点收藏

1bcfb5311348d326488b79bb08ffe1ce.gif

点点赞

a691f8de34893618083d2435017b5879.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库基本查询语句

select基本查询语句 使用oracle中scott用户中的表进行的基本查询语句 select * from emp;--列出职位为MANAGER的员工的编号,姓名--select empno,ename from emp where job MANAGER;--like模糊查询我也不懂SELECT * FROM EMP WHERE ENAME LIKE%*_%ESCAPE*;--找出奖金…

linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits

CVE–2018–1000001  [glibc](glibc < 2.26)CVE-2017-1000367  [Sudo](Sudo 1.8.6p7 – 1.8.20)CVE-2017-1000112  [a memory corruption due to UFO to non-UFO path switch]CVE-2017-16995  [Memory corruption caused by BPF verifier] (Linux kernel before 4.1…

10个高效Linux技巧及Vim命令对比

写在前面&#xff1a;今天没来得及唱歌~一个多星期没更新了&#xff0c;今天记录下我自己用得比较多的Linux命令行快捷键&#xff0c;小伙伴们别嘲笑我哈~不知道为啥&#xff0c;每次发文就有好几个小伙伴取消关注离开之前&#xff0c;可以告诉我为什么吗~~Vim的很多命令和功能…

python 微信机器人_Python 微信机器人

一、写在前边的话 如何做一个自动回复的微信机器人&#xff1f;机器人的功能有&#xff0c;自动加好友&#xff0c;关键字回复&#xff0c;等等&#xff0c;它甚至可以成为你的私人管家&#xff0c;只要你的代码到位。今天&#xff0c;主要讲解下&#xff0c;微信机器人-图灵版…

linux 控制台存储,技术|使用 Stratis 从命令行管理 Linux 存储

通过从命令行运行它&#xff0c;得到这个易于使用的 Linux 存储工具的主要用途。正如本系列的第一部分和第二部分中所讨论的&#xff0c;Stratis 是一个具有与 ZFS 和 Btrfs 相似功能的卷管理文件系统。在本文中&#xff0c;我们将介绍如何在命令行上使用 Stratis。安装 Strati…

Java_基础—List的三个子类的特点

List的三个子类的特点 ArrayList: 底层数据结构是数组&#xff0c;查询快&#xff0c;增删慢。 线程不安全&#xff0c;效率高。 Vector: 底层数据结构是数组&#xff0c;查询快&#xff0c;增删慢。 线程安全&#xff0c;效率低。 - Vector相对ArrayList查询慢(线程安全…

你想要的江湖,可能不在这时候笑傲

昨天看知识星球看到的一个码农的经历&#xff0c;然后我看了&#xff0c;也回答了&#xff0c;想把回答分享给大家&#xff0c;我觉得这应该是很多人都会遇到的。困扰的问题潜水这么久&#xff0c;有一个问题想问一下&#xff0c;帅张。可能有点啰嗦。就是在一家公司做开发&…

mysql binlog 备份_MySQL的binlog知识梳理

1、binlog概念:binlog是一个二进制格式的文件&#xff0c;用于记录“修改数据或可能引起数据变更”的SQL语句(查询的SQL不会记录)。2、binlog功能:(1)恢复: 利用binlog日志恢复数据库数据。(2)复制: 主从架构通过binlog同步数据。(3)审计: 可以用binlog中的信息进行审计&#x…

关于游戏行业目前的形势

cocos做棋牌特别多 ccc开发周期短&#xff0c;小公司喜欢&#xff0c;做小游戏非常快 游戏也分前端和服务器端 王者荣耀投资大&#xff0c;美术猛 vr现在硬件还没有统一 ccc和node.js可以做前端和服务器 换皮和外包很普遍 转载于:https://www.cnblogs.com/HangZhe/p/7188356.ht…

vep格式用什么播放器linux,vep格式视频用什么播放器打开

VEP是AVS的项目文件&#xff0c;可以在AVS中加载&#xff0c;然后导出成视频格式但追答听题主的描述&#xff0c;这个文件更像一个加密文件&#xff0c;可以试试用录像软件&#xff0c;录制成视频格式追问录制感觉有点麻烦啊&#xff0c;没有简单的直接用普通播放器播放的方法吗…

你需要知道的Linux 系统下外设时钟管理

嵌入式系统一般要求低功耗&#xff0c;出于这个原因&#xff0c;一般只把需要使用到的外设时钟源打开&#xff0c;其他不需要使用到的模块&#xff0c;则默认关闭它们。LCD 模块&#xff0c;上电时候默认情况是关闭的&#xff0c;所以&#xff0c;要想使用 LCD 模块&#xff0c…

千万级大表如何更快速的创建索引_分享一份生产环境mysql数据库大表归档方案,值得收藏...

概述分享下最近做的一个mysql大表归档方案&#xff0c;仅供参考。整体思路一、明确哪些大表需做归档1、数据库表概要信息统计SELECTt1.table_schema,t1.table_name,ENGINE,table_rows,CAST( data_length / 1024.0 / 1024.0 AS DECIMAL ( 10, 2 ) ) data_size(M),CAST( index_le…

Android手机摇一摇的实现SensorEventListener

Android手机摇一摇的实现SensorEventListener 看实例 package com.example.shakeactivity;import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.Se…

linux cas 钥匙生成,gcc linux利用CAS实现无锁编程

利用__sync_bool_compare_and_swap()&#xff0c;实现无锁编程CAS即compare and swap,每次都会和old 值进行比较&#xff0c;如果没有发生更改再用new值给ptr赋值&#xff0c;然后返回true#include #include #include #include #ifdef __GNUC__//#define ATOMIC#define CAS#def…

载波和LoRa

最近lora这个很火&#xff0c;火的原因是因为国家出了一个政策&#xff0c;这个政策呢&#xff0c;有很多人解读了&#xff0c;我身边也有好几个朋友做这方面的&#xff0c;然后我今天找他们聊了下&#xff0c;得到的结果是&#xff0c;这个政策肯定是或多或少对现在的行情和市…

imread函数 matlab_【MATLAB图像处理学习】1.读取和显示图片

CHAPTER2 图像处理的基础函数【使用的教材&#xff1a;冈萨雷斯 数字图像处理MATLAB(Digital image processing with Matlab】【原书图片下载地址&#xff1a;点这里】先介绍三个MATLAB中图片基本操作&#xff1a;imread imshow imwrite2.2读取图片imread(filename)imread是读取…

一场不能只看结果的较量

林书豪的比赛看得真的很舒服&#xff0c;虽然输掉了比赛&#xff0c;但是看到两边不断改变打法&#xff0c;不断试图侵犯对方的夺取分数&#xff0c;就好比看了一场战争电影&#xff0c;过程酣畅淋漓&#xff0c;结果差点令人满意。第一节广东的双后卫给北京制造了非常多的麻烦…

log4js linux,日志管理 log4js

版本&#xff1a;express&#xff1a;"~4.13.4"log4js&#xff1a;"^0.6.38"安装npm install log4js封装 log4js&#xff1a;在项目根目录下新建文件 logger.js&#xff1a;var log4js require(log4js);log4js.configure({appenders: [{type: console // …

嘻哈帝国第一季/全集Empire迅雷下载

英文译名Empire&#xff0c;第1季(2015-01-08)FOX.本季看点&#xff1a;《嘻哈帝国》卢西奥斯莱恩是一名超级音乐明星兼Empire娱乐公司的创始人&#xff0c;故事讲述了他如何在困境和失败中运营公司的故事。拥有庞大帝国的老板得了绝症&#xff0c;于是他决定培养继承人&#x…

cassandra可视化工具_一位数据科学家的私房工具清单

作为一位万人敬仰的数据科学家&#xff0c;不但需要培育一棵参天技能树&#xff0c;私人武器库里没有一票玩得转的大火力工具也是没法在江湖中呼风唤雨的。近日北卡来罗纳大学CTO&#xff0c;一位数据科学家Jefferson Heard分享了多年来收集沉淀的数据分析工具集&#xff1a;处…