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

这篇具有很好参考价值的文章主要介绍了【linux】/etc/security/limits.conf配置文件详解、为什么限制、常见限制查看操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

/etc/security/limits.conf 与 /etc/profile的区别,linux,linux,服务器,microsoft

描述

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

注意

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

 

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

文件描述符是一个索引

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

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

 
文件描述符表格
/etc/security/limits.conf 与 /etc/profile的区别,linux,linux,服务器,microsoft
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

 文章来源地址https://www.toymoban.com/news/detail-767811.html

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

到了这里,关于【linux】/etc/security/limits.conf配置文件详解、为什么限制、常见限制查看操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux中limits.conf和sysctl.conf需做哪些优化

    limits.conf 和 sysctl.conf 是 Linux 系统中用于 配置用户资源限制和系统内核参数 的两个重要配置文件。针对这两个文件进行优化,可以帮助提升系统的安全性和性能。 limits.conf 是 PAM(Pluggable Authentication Modules,可插拔认证模块)的配置文件,用于限制用户的系统资源使用。以下

    2024年04月27日
    浏览(24)
  • linux /etc/resolv.conf 改完dns 怎么保证重启仍然生效

    在 Linux 系统中,可以使用 resolvconf 工具来管理 /etc/resolv.conf 文件。这个工具会在系统重启后自动重新配置 DNS。 另外一种方法是直接修改 /etc/network/interfaces 文件,在里面加上 dns-nameservers x.x.x.x 便可 你可以通过运行 sudo resolvconf -u 来更新 DNS 配置,使之生效。 此外,也可以在 /

    2024年02月11日
    浏览(33)
  • redis.conf配置文件常用配置项详解

    redis.conf 是 Redis 的配置文件,用于配置 Redis 服务器的各种参数和行为。这个配置文件包含了丰富的选项,允许用户调整 Redis 的行为以满足特定需求。以下是一些 redis.conf 中常见配置项的详解: daemonize : 默认值: no 说明: 如果设置为 yes ,Redis 将以守护进程方式运行。 po

    2024年01月17日
    浏览(42)
  • Linux 系统中etc/passwd文件详解

    在 Linux 系统中,每个用户都有一个对应的 /etc/passwd 文件中的记录行。这个文件对所有用户都是可读的,它记录了每个用户的一些基本属性信息。 本文将详细介绍 /etc/passwd 文件的语法、实操和各个字段的含义,以及一些关键的命令操作。 每个 /etc/passwd 文件中的记录行由冒号

    2024年02月10日
    浏览(29)
  • sshd_conf 配置文件详解

      /etc/ssh/sshd_config配置文件内容详解。 Port 22 设置SSHD监听端口号。 SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项! 例如想要开放SSHD端口为 22和222,则多加一行内容为: Port 222 即可。 然后重新启动SSHD这样就好了。 建议大家修改 port number 为其它端

    2024年02月04日
    浏览(140)
  • linux smb.conf文件配置

    smb.conf文件是smb服务的唯一的一个配置文件,用来配置smb共享文件 smb.conf文件中有包括一些全局设置和局部设置,已\\\"[***]\\\"作为分割每个文件配置,但是在“[global]”中的配置则为全局配置,对整个smb服务器有效 [global] samba服务器的全局设置,对整个服务器有效。 workgroup 语法:

    2024年02月12日
    浏览(48)
  • Liunx的/etc/resov.conf配置的options rotate对nameserver行为的影响

    探讨在linux环境下的dns客户端配置 /etc/resov.conf配置的options rotate对nameserver中解析行为的影响以及常遇到的几个相关问题。 通过执行命令 man resolv.conf 查看rotate的说明 翻译成中文 因此配置 options rotate 前后的业务行为表现差异如下 不配置 options rotate ,客户端程序如果尝试解析

    2024年01月21日
    浏览(25)
  • Linux下的sudo及其配置文件/etc/sudoers详细配置

    这篇文章主要介绍了详解Linux下的sudo及其配置文件/etc/sudoers的详细配置的相关资料,需要的朋友可以参考下。 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了

    2024年02月06日
    浏览(74)
  • Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

    目录 一、全局配置的六个模块简介 二、Nginx配置文件的详解 1)全局配置模块  2)I/O 事件配置  3)HTTP 配置  4)web服务监听设置 5)其他设置 location常见配置指令:“root、alias、proxy_pass 对比:  当设置  location /test{     },alias /var/www/html  和   root /var/www/html  有什么区别

    2024年02月07日
    浏览(44)
  • Linux中如何修改nginx的nginx.conf配置文件,并刷新生效?

     1、进入nginx的conf目录(按照自己实际的路径来) 2、 可以先查看当前配置文件内容 3、回车查看更多 4、vim进入修改文件 5、修改之后 按 Esc 键退出,输入 :wq 保存退出 6、执行 ./sbin/nginx -t命令测试nginx.conf文件是否合法  7、重启nginx 杀掉进程,重启nginx,实现重启nginx服务

    2024年02月16日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包