IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 3种改变Linux中打开文件限制的方法 -> 正文阅读

[系统运维]3种改变Linux中打开文件限制的方法

当打开文件进行访问时,操作系统会临时为文件分配一个称为文件句柄的数字。主存的一个特殊区域是为文件句柄保留的,这个区域的大小决定了一次可以打开多少个文件。Linux 上的进程受到许多约束的限制,这些约束也阻止它们正确执行,并且每个进程都有一些与之相关的限制。shell 限制程序可以同时打开的文件句柄的数量。在本文中,我将向您展示可用于更改 Linux 中打开文件限制数量的不同方法。

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

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

在 Linux 下,有两种限制:

  • ?限制?是可以随时由进程更改的值。
  • ?限制?标记通过设置软限制不能超过的最大值

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

# cat /proc/sys/fs/file-max
100576

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

1) ulimit 命令

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

ulimit [options [limit]]

这些选项定义了受到限制的内容。您可以看到一些选项如下

  • -a(Current Settings Passing):使 ulimit 报告其当前设置。
  • -f(File Limits) 限制 shell 可以创建的文件的大小
  • -n限制打开文件描述符的数量。
  • -H-S(硬和软限制)选项修改其他选项,使它们分别设置为硬限制或软限制。随后可能不会增加硬限制,但可能会增加软限制。如果两个选项均未提供,则 ulimit 会为指定的功能设置硬限制和软限制。

因此,要查看当前限制,您可以执行以下操作:

$ ulimit -a | grep open
open files (-n) 1024

您可以检查硬限制,如下所示:

$ ulimit -Hn
4096

和软限制如下:

$ ulimit -Sn
1024

您可以编辑限制如下

$ ulimit -n 3000

您可以检查以下内容:

$ ulimit -n 
3000

现在的问题是,如果您注销并登录或重新启动计算机,该值将被重置。请记住,使这些限制更加永久需要通过将 ulimit 命令行添加到文件末尾来编辑用户的配置文件 (.bashrc.profile) 或系统范围的配置文件 (/etc/bashrc或),如下所示/etc/profile

# vim .bash_profile
ulimit -n 3000

现在即使重新启动,用户设置的限制也将是永久的。您可以选择仅增加硬限制 (?-Hn) 或软限制 (?-Sn),但您应该注意,软限制可以由任何用户设置,而硬限制一旦设置后只能由 root 更改。

2) 可插拔认证模块 (PAM) 模块

施加此类限制最好通过名为?pam_limits的可插入身份验证模块 (PAM) 模块来完成。大多数主要的 Linux 发行版都将此模块用作其标准 PAM 配置的一部分,因此它已经存在于某些 Linux 系统上,但您需要通过编辑/etc/security/limits.conf?文件来配置它。该文件包含四个基本字段:

  • domain?它描述了限制适用的实体。它可以是用户名、组名(格式为 @groupname)或星号 ( * ) 通配符,可匹配所有人。但是,您应该注意到通配符不适用于 root 用户
  • type?字段将限制指定为硬或软。硬限制是系统管理员强加的,在任何情况下都不能超过,而用户可以暂时超过软限制。您也可以使用破折号 (-) 来表示限制是硬限制和软限制。请注意,软限制可能会增加到硬限制的值
  • item?它指定限制的项目类型。这可以是?nofile(打开的数据文件的数量)、??fsize?(用户创建的文件的大小)、??core?(核心文件的大小)等
  • value?它指定要应用于限制的值

例如,您可以看到该文件的内容如下:

# tail -f -n 12 /etc/security/limits.conf 
#<domain>?????? <type>?? <item>???????? <value>?????? 
#
#*?????????????? 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

要编辑所有用户的最大打开文件数,您可以添加,例如,在文件末尾添加以下行:

# vim /etc/security/limits.conf
*?????? hard??? nofile? 20000
*?????? soft??? nofile? 15000

在此之后,您需要编辑文件?/etc/pam.d/login

# vim /etc/pam.d/login
session required pam_limits.so

然后保存文件。您可以检查结果如下:

$ ulimit -Hn
20000

3) 系统范围的限制

在 Linux 系统上,我们有?file-max??,它是最大的文件描述符 (FD),ulimit 和 file-max 的默认设置假定多个用户将共享系统。这就是这些设置限制每个用户使用的资源数量的原因。/etc/sysctl.conf您可以通过编辑或编辑指令?来增加 Linux 中打开文件的限制??fs.file-max

您可以使用命令查看打开文件的当前值

# cat /proc/sys/fs/file-max
100576

您可以编辑默认值,如下所示:

# sysctl -w fs.file-max=250000
fs.file-max = 250000

您可以检查结果如下

# cat /proc/sys/fs/file-max
250000

通过使用sysctl 命令,修改将应用到下次重新启动。要使配置持久化,您可以直接编辑?/etc/sysctl.conf文件,如下所示:

# vim /etc/sysctl.conf
fs.file-max=250000

如果列出 的内容?/proc/sys/fs/file-max?,您会看到更改没有直接生效。现在您需要使用 sysctl 命令的 -p 选项直接应用更改,如下所示:

# sysctl -p
fs.file-max = 250000

现在配置是永久的

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:13:16  更:2022-03-13 22:14:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:21:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码