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

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

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

在这里插入图片描述

描述

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

注意

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

 

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

文件描述符是一个索引

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

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

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

 
 

三. 为什么限制

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

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

 

为什么限制进程数?

 

四. 相关操作

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

关注几个值

 

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

sudo cat /proc/sys/fs/file-nr
1184    0       1610170

 

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

原文地址:https://blog.csdn.net/hiliang521/article/details/134734920

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27166.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注