【linux】/etc/security/limits.conf配置文件详解、为什么限制、常见限制查看操作

/etc/security/limits.conf 是一个用于配置用户或用户组资源限制的配置文件。这个文件通常用于设置系统资源的软限制和硬限制,以及一些特殊权限。

一. limits.conf常见配置项详解

下面是一些 /etc/security/limits.conf 文件中可能包含的常见配置项:

在这里插入图片描述

描述

  1. 第一列表示用户和组(@开头),这里的 * 代表所有用户。第二列表示软限制还是硬限制,第三列表示限制的资源类型,第四列表示限制的最大值 hard和soft的区别。
  2. soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。
  3. core是内核文件,nofile是文件描述符,noproc是进程,一般情况下只限制文件描述符数和进程数就够了

注意

修改了 /etc/security/limits.conf 文件后,需要注销并重新登录用户,或者重新启动相关的服务才能使配置生效。

 

二. 文件描述符(file descriptor)简述

文件描述符是一个索引

Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。在操作文件的时候,如果每操作一次就找一次名字,这就会耗费大量的时间和效率。所以Linux中规定每一个文件对应一个索引,与文件交互时直接找索引即可,这里的索引就是文件描述符。

文件描述符(file descriptor)是内核为了高效管理这些已经被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符来实现

 
文件描述符表格
在这里插入图片描述
Linux内核对所有打开的文件有一个文件描述符表格,里面存储了每个文件描述符作为索引与一个打开文件相对应的关系,简单理解如上图这样一个数组,文件描述符(索引)就是文件描述符表这个数组的下标,数组的内容就是指向一个个打开的文件的指针。

 
 

三. 为什么限制

为什么要限制打开的文件描述符?

  1. 资源问题:每个打开的文件都需要消耗内存来管理,而内存是有限的。
  2. 安全问题:如果不限制的话,有不怀好心的人启动一个进程来无限的创建和打开新的文件,会让服务器崩溃。

 

为什么限制进程数?

  • 资源管理: 进程数限制有助于控制系统资源的分配和使用。每个进程都需要分配一些系统资源,如内存、CPU 时间、文件描述符等。如果允许无限制地创建大量进程,可能会消耗掉系统的资源,导致系统变得不稳定或崩溃。

  • 性能和稳定性:过多的进程可能会导致系统性能下降。当系统负载增加时,会增加调度和管理进程的开销,可能导致响应时间变长,甚至影响到系统的稳定性。

  • 安全性: 进程数限制也有助于防止恶意软件或恶意用户通过大量的进程耗尽系统资源,从而对系统进行拒绝服务攻击(Denial of Service,DoS)或拖垮系统的运行。

  • 避免资源竞争: 限制进程数也有助于避免资源竞争。在某些情况下,过多的进程可能争夺相同的资源,导致竞争、阻塞或性能下降。

 

四. 相关操作

1. 展示当前资源限制

 ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63456
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 327680
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

关注几个值

  • max locked memory (kbytes, -l): 最大锁定内存大小限制,表示进程可以锁定在内存中的最大数据量。这里设置为 64 KB。

  • open files (-n): 打开文件的数量限制,表示进程可以同时打开的文件数量。这里设置为 327680。

  • pipe size (512 bytes, -p): 管道大小限制,表示管道缓冲区的最大大小。这里设置为 8,表示管道缓冲区的大小为 8 * 512 字节。

  • stack size (kbytes, -s): 栈大小限制,表示进程栈的最大大小。这里设置为 8192 KB。

  • max user processes (-u): 最大用户进程数限制,表示一个用户可以创建的最大进程数量。这里设置为 4096。

 

2. 查看系统当前打开的文件描述符数量

sudo cat /proc/sys/fs/file-nr
1184    0       1610170
  • 第一个数:表示当前系统分配后已使用的文件描述符数,
  • 第二个数:表示分配后未使用的(内核2.6版本中这个值总是为0,这并不是一个错误,它意味着已经分配的文件描述符总会被使用),
  • 第三个数:等于最大值file-max。

 

3. 查看某个进程打开的文件描述符数量

$ lsof -p 20262 |wc -l
5

 

4. 各进程占用的文件描述符

lsof -n |awk '{print $10}'|sort |uniq -c |sort -nr|head -10
9838 
 488 IDEA
 279 Chrome.app/Contents/Frameworks/Google
 150 Book
  96 id
  58 Layouts/AppleKeyboardLayouts.bundle/Contents/Resources/AppleKeyboardLayouts-L.dat
  50 Support/Google/Chrome/Subresource
  41 (ESTABLISHED)
  36 Support/XMind/Electron
  33 Support/Google/Chrome/optimization_guide_model_store/25/63922A0C010C80A5/6B406658B3AA7A20/visual_model_desktop.tflite
  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第一章 AIX操作系统简介 8 1.1 AIX操作系统的主要特点 8 1.1.1 遵循众多工业标准 8 1.1.2 先进的系统设计 8 1.1.3 强大的通讯能力 9 1.1.4 终端支持 9 1.2 AIX系统架构 9 1.3 命令语言解释器(KSH) 9 1.4 AIX文本编辑器 9 1.5 AIX系统中的DOS工具 9 1.6 AIX系统的用户界面 10 1.7 联机帮助 10 1.8 AIX的几个重要技术 11 1.8.1 LVM-Logical Volume Manager 11 1.8.2 JFS-Journal File System 11 1.8.3 系统管理接口工具(smit) 11 第二章 AIX操作系统的安装 14 1.1 安装介质与方式 14 1.2 安装步骤 14 1.2.1 准备工作 14 1.2.2 BOS(Base Operating System)安装 14 1.2.3 OPP(Optional Program Product)扩展子系统安装 17 1.3 系统启动过程 18 第三章 AIX操作系统基本命令 19 3.1 系统的进入和退出 19 3.2 PASSWORD 19 3.3 MKDIR、RM、MV和CD 19 3.4 LS 19 3.5 DATE 19 3.6 CAL 20 3.7 CAT 20 3.8 WC 20 3.9 CLEAR 、ECHO和BANNER 20 3.10 WHO 20 3.11 FINGER 20 3.12 MAIL 21 3.13 PS 21 3.14 KILL 21 3.15 FIND 22 3.16 GREP 22 3.17 CUT 23 3.18 SORT 23 3.19 HEAD 和TAIL 24 3.20 DOS工具 24 3.21 管道与重定向 24 3.22 LSDEV 25 3.23 LSPV 26 3.24 CFGMGR 27 3.25 LSATTR 27 3.26 ERRPT 28 第四章 VI编辑器 29 4.1 VI 简介 29 4.2 VI的进入与离开 29 4.3 VI 的文本输入模式 29 4.4 VI 基本编辑命令 30 4.5 文件处理子命令 31 第五章 对象数据管理 33 第六章 存储管理 34 6.1 相关术语 34 6.1.1 PV (Physical Volume) 34 6.1.2 VG (Volume Group) 34 6.1.3 PP (Physical Partition) 34 6.1.4 LP (Logical Partition) 35 6.1.5 LV(Logical Volume) 35 6.1.6 Mirror(镜像) 35 6.1.7 VGDA(Volume Group Description Area,卷组描述区) 35 6.1.8 VGSA(Volume Group Status Area,卷组状态区) 35 6.2 PV的管理 36 6.2.1 配置一个PV 36 6.2.2 修改PV的属性 36 6.2.3 删除一个PV 36 6.3 VG的管理 36 6.3.1 创建一个VG 36 6.3.2 删除一个VG 37 6.3.3 对VG的管理 37 6.4 LV的管理 38 6.4.1 增加一个LV 38 6.4.2 修改LV的属性 38 6.4.3 删除一个LV 39 第七章 文件系统 40 7.1 概述 40 7.2 日志文件系统 40 7.2.1 增加文件系统 41 7.2.2 在一个已有的LV上建立文件系统 41 7.2.3 修改文件系统的属性 42 7.2.4 mount /umount 一个文件系统 42 7.2.5 改变文件系统的大小 43 7.2.6 文件系统的删除 44 7.2.7 JFS log 设备 44 第八章 页面交换空间-PAGING SPACE 45 8.1 查看PAGING SPACE的状态 45 8.2 增加一个PAGING SPACE 46 8.3 修改PAGING SPACE的属性 46 8.4 删除一个PAGING SPACE 47 第九章 系统资源控制器的管理 48 9.1 启动SRC 48 9.2 STARTSRC命令 48 9.3 REFRESH命令 49 9.4 CRON后台进程 49 9.4.1 at 50 9.4.2 batch 50 第十章 系统性能调整 51 10.1 VMSTAT 51 10.2 IOSTAT 52 10.3 NETSTAT 52 第十一章 用户管理 55 11.1 与用户管理相关的重要系统文件 55 11.1.1 /etc/passwd 55 11.1.2 /etc/security/passwd 55 11.1.3 /usr/lib/security/mkuser.default 55 11.1.4 /etc/group 55 11.1.5 /etc/security/group 55 11.1.6 /etc/environment 55 11.1.7 /etc/security/environment 55 11.1.8 /etc/utmp , /var/adm/wtmp , /etc/security/failedlogin 56 11.1.9 /etc/motd 56 11.1.10 /etc/security/user 56 11.1.11 /etc/security/limits 56 11.1.12 /etc/security/login.cfg 56 11.2 用户组管理 56 11.2.1 增加一个用户组 56 11.2.2 修改一个用户组 56 11.2.3 删除一个用户组 57 11.3 用户管理 57 11.3.1 增加一个用户 57 11.3.2 修改用户参数 57 11.3.3 删除一个用户 57 11.3.4 显示用户信息 57 11.4 COMMON DESKTOP ENVIRONMENT 58 11.4.1 Enabling and Disabling Desktop Autostart 58 11.4.2 手工启动CDE 58 11.4.3 手工停止CDE 58 第十二章 打印管理 59 12.1 创建一个打印队列 60 12.2 打印配置文件 60 12.3 打印队列的控制 61 12.4 启动和停止一个打印队列 61 第十三章 网络配置 63 13.1 TCP/IP通讯后台进程 63 13.2 以太网的配置 63 13.2.1 增加一个以太网卡 64 13.2.2 修改以太网卡接口 64 13.2.3 删除一个以太网卡 64 13.2.4 TCP/IP的测试 64 13.3 /ETC/HOSTS文件 64 13.4 UNAME 命令 64 第十四章 系统的备份与恢复 65 14.1 MKSYSB命令 66 14.2 系统备份 66 14.3 其他备份工具 67 第十五章 AIX操作系统命令小结 68 15.1 逻辑卷管理命令总结 68 15.1.1 物理卷命令 68 15.1.2 卷组命令 68 15.1.3 逻辑卷命令 68 15.1.4 文件系统命令 69 15.2 交换空间管理 69 15.3 用户管理 69 15.4 其他 69 第十六章 光盘库(3995 C系列)及ADSM的安装、调试和使用 70 第十七章 SNA子系统介绍 76 17.1 SNA介绍 76 17.2 SNA的配置 76 17.3 SNA的编程 87 第十八章 基于UNIX编程技巧介绍 118 18.1 进程控制 118 18.1.1 进程的建立与运行 118 18.1.2 进程的控制操作 120 18.1.3 进程的属性 120 18.2 进程的通讯 123 18.2.1 引言 123 18.2.2 信号通信机构 124 18.2.3 管道通信机构 135 18.2.4 FIFO通信机构 144 18.2.5 记录锁定 147 18.2.6 IPC通信机构 153 第二十章 关系数据库(INFORMIX)的管理技巧 172

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roman_日积跬步-终至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值