关于ulimit的问题

  1. ulimit 有软限制和硬限制
    1. 软限制起实际限制作用,但不能超过而硬限制(除非有root权限)【所以,ulimit默认显示的是软限制的值】
    2. 普通用户可以在硬限制范围内,更改自己的软限制
    3. 普通用户都可以缩小硬限制,但不能扩大硬限制。而root缩小扩大都可以
    4. 修改或查看限制可以用 ulimit 命令
  2. 我们一般都知道的文件为: /etc/security/limits.conf
  3. 我们很少关注目录: /etc/security/limits.d/     该目录下有时候也会存在相关配置,使得你怎么修改limits.conf 都不生效
  4. 我们经常的做法是修改limits.conf ,但是正确的做法应该是在limits.d/ 中添加一个文件,文件命名也有讲究,如:
    默认存在一个 90-nproc.conf,我们可以添加 91-nproc.conf 来覆盖前者
  5. sshd 会参考limits相关配置,并且是在ssh登录时参考的,不是在启动sshd时候参考的,所以,修改完limits相关配置,不需要重启sshd
  6. /etc/security/limits* 属于pam_limits 模块所属文件,如果必要的话,从pam中去掉该模块或者卸载该软件包也就不会受到这些限制了
  7. limits 的特点是超过限制就禁止启动或杀掉
  8. 每个进程都有一个 /proc/$pid/limits

有些限制是系统级别的,有些限制是进程级别的:

  1. open files: 单个进程打开文件最大数量限制
    1. 基本上也就是最大文件描述符的限制了,一些进程会据此for循环来关闭所有的文件描述符;所以,没有必要unlimited
  2. max user processes: 系统级别的
    1. 以uid为参考,如果当前已经达到或超过该数值限制,则禁止继续启动

参考:

 

 

留下评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据