linux 设置打开文件数

可以使用下面的文件进行设置

/etc/security/limits.d/90-nproc.conf

先来看/etc/security/limits.d/90-nproc.conf 配置文件:

[root@ ~]# cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.


*          soft    nproc     1024
root       soft    nproc     unlimited
系统其它普通用户最多进程默认是1024个,而root用户是 unlimited(不受限制)

/etc/security/limits.conf 配置文件可限制文件打开数,系统进程等资源,在该文件配置中写的最大用户进程数是受/etc/security/limits.d/90-nproc.conf配置上限影响的。

一般系统普通用户进程数满了都是修改/etc/security/limits.d/90-nproc.conf文件。
 

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

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

最好通过名为pam_limits的PAM模块实现这种限制。需要通过编辑/etc/security/limits.conf文件来配置它。这个文件包含四个基本字段:
domain:描述了在哪些实体中应用限制。它可以是user、group(组名前面加@表示组)或匹配所有用户,使用(*)通配符。通配符不适应与root用户。
type:这里表示限制为硬限制还是软限制?硬限制是由系统管理员添加的,在任何情况下都不能超过,而用户可以临时超过软限制。还可以使用破折号-来表示一个限制是硬的和软的。请注意,软限制可以增加到硬限制的值
type:它指定被限制条目的类型。可以是core(限制核心文件大小(KB)),data(最大数据大小(KB)),fsize(最大文件大小(KB)),nofile(打开的文件描述符的最大数目),nproc(最大进程数),等类型。更多类型可以使用man limits.conf查看。

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

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

180965

一般我们也是可以修改 /etc/security/limits.conf 文件

[root@localhost ~]# vim /etc/security/limits.conf 

* hard nofile 20000

* soft nofile 15000

之后,需要编辑文件/etc/pam.d/login配置文件,在最后添加以下一条内容:

[root@localhost ~]# vim /etc/pam.d/login session    required pam_limits.so

保存文件。然后退出登录,或者重启系统。可以看到软限制和硬限制的值都修改成功了:

[root@localhost ~]# ulimit -Sn15000
[root@localhost ~]# ulimit -Hn
20000

方法三:

查看系统最大打开文件描述符数量:

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

临时设置该值:

[root@localhost ~]# echo "1000000" > /proc/sys/fs/file-max 

永久性设置,需要在/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。

注意下面的提示:

修改/etc/security/limits.conf也可以达到目的,但是需要注意两个问题:
1.在配置文件中需要指明用户,如不指明,会有可能导致配置不生效(当两个配置文件都在生效时)。
2.书写有格式要求,* soft nproc 20480中间需要至少2个空格隔开。

注意:如果两个配置文件中都做了限制,以/etc/security/limits.d/90-nproc.conf中最小值为准
 

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

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

相关文章

计算机网络常见问题

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 1.1.为什么要分层? 在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流…

图像形态学操作(连通性、腐蚀、膨胀)

相关概念 形态学操作-腐蚀 参数: img: 要处理的图像kernal :核结构iteration :腐蚀的次数,默认是1 形态学操作-膨胀 参数: img : 要处理的图像kernal : 核结构iteration : 膨胀的次数,默认为1 import cv2 as cv im…

STM32F103RCT6学习笔记2:串口通信

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发,有关基础知识的部分不会多唠,直接实践与运用!文章贴出代码测试工程与测试效果图: 目录 串口通信实验计划: 串口通信配置代码: 测试效果图&#…

Cpp/Qt-day020918Qt

目录 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…

用AVR128单片机的音乐门铃

一、系统方案 1、使用按键控制蜂鸣器模拟发出“叮咚”的门铃声。 2、“叮”声对应声音频率714Hz,“咚”对应声音频率500Hz,这两种频率由ATmega128的定时器生成,定时器使用的工作模式自定,处理器使用内部4M时钟。“叮”声持续时间300ms&#x…

上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技

备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…

英伟达 nvidia 官方code llama在线使用

新一代编程语言模型Code Llama面世:重新定义编程的未来 随着人工智能和机器学习技术的迅速发展,我们现在迎来了一款革命性的大型编程语言模型——Code Llama。该模型是基于Llama 2研发的,为开放模型中的佼佼者,其性能达到了行业领…

2023工博会强势回归!智微工业携八大系列重磅亮相

中国国际工业博览会(简称"中国工博会")自1999年创办以来,历经二十余年发展创新,通过专业化、市场化、国际化、品牌化运作,已发展成为通过国际展览业协会(UFI)认证、中国工业领域规模最…

早餐与风景

来吧,我用流水账描述下这一天。 时维九月,北京的早上有点冷,因为今天有个市场活动要去支撑,按照会议时间的要求,我需要在早上7点半就赶到会场,所以昨天晚上我加班到凌晨处理完了今天要给出去的材料&#xf…

react实现动态递增展示数字特效

在可视化展示界面时有一种场景,就是页面在初始化的时候,有些数字展示想要从某个值开始动态递增到实际值,形成一种动画效果。例如: 写一个数字递增的组件,代码如下: import {useEffect, useRef, useState} f…

基于Java的Base64编解码优化探讨

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Ubuntu22.04 vnc远程黑屏

一、原因 原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。 简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现(xorg太流行),并不兼容Wayland,所以vnc无法正常…

php反序列化+题

含义: php序列化(serialize):是将变量转换为可保存或传输的字符串的过程php反序列化(unserialize):就是在适当的时候把这个字符串再转化成原来的变量使用这两个过程结合起来,可以轻…

版本控制系统git:一文了解git,以及它在生活中的应用,网站维护git代码,图导,自动化部署代码

目录 1.Git是什么 2.git在生活中的应用 2.1git自动化部署代码 3.网站维护git代码 3.1如何在Git代码托管平台等上创建一个仓库 3.2相关文章 4.ruby实现基础git 4.1.Git add 4.2 Git commit 4.3 Git log 1.Git是什么 Git是一个版本控制系统,它可以追踪文件的…

怒刷LeetCode的第7天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:二分贪心 方法二:二分DP 第二题 题目来源 题目内容 解决方法 方法一:双指针 方法二:暴力搜索 方法三:排序 第三题 题目来源 题目内容 解决方法 方法一…

Aztec交易架构解析

1. 引言 前序博客有: Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私完全保密的以太坊交易:Aztec网络的隐私架构Aztec.nr:Aztec的隐私智能合约框架——用Noir扩展智能合约功能Account Abstraction账号抽象——…

【数据增强】

【数据增强】 1 数据增强的情形2 数据增强的方法 1 数据增强的情形 当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样…

flex布局与float布局

float布局 俩栏 三栏 flex布局

css自学框架之二级下拉菜单

下拉菜单是我们开发中最常见,最常用的,今天我们就自学二级下来菜单。首先看一下最终效果: 一、css代码 .arrow-down::before {content: ""; width: 10px;height: 10px;border: solid ;border-width: 2px 2px 0 0;border-color: …

大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统

国际化、全球化集团,业务遍布全世界,下属公司众多,集团对管理方式和企业文化塑造有着很高的要求。不少大型集团以数字化方式助力全球统一办公,深化企业统一管理。 面对大型集团全球化的管理诉求,数字化办公系统作为集…