ulimit描述
Linux操作系统中利用ulimit限制shell启动进程占用的资源,ulimit支持对用户的打开进程数、进程打开文件句 柄数、进程打开文件的大小、进程coredump文件大小等资源进行限制,从而防止某个用户进程过度占用系统 资源,避免影响整个操作系统和其他应用的正常运行。但是使用ulimit进行限制后,当用户资源超限制时会出 现各种各样的报错,用户打开进程数,即nproc参数。 用户的nproc达到限制,无法创建新的进程 由于是用户打开进程数达到了限制,那么排查方法主要是查看用户目前打开的进程的数量 ps -u www -Lf 超过了设置的800 的值 问题基本确定在新机房服务器的这个配置上面了 www soft nproc 800 wwb hard nproc 1000 设置限制数量,第一列表示用户,*表示所有用户 soft 软限制,hard硬限制。当数量达到软限制的时候会出现报警,达到硬限制的时候才不会增加 soft nproc: 单个用户可用的最大进程数量(软限制) hard nproc: 单个用户可用的最大进程数量(硬限制) soft nofile:可打开的文件描述符的最大数(软限制) hard nofile:可打开的文件描述符的最大数(硬限制) 其中, nofile是文件句柄数量,线程句柄也属于它。nproc是进程数量。
nproc进一步设置
关于nproc设置:centos7,内核版本是3.10.0. 默认情况下,ulimit -u的值为1024, 是/etc/security/limits.d/20-nproc.conf(CentOS6是90-nproc.conf)的值限制;注释掉这个限制后,值为644011 * soft nproc 1000000 root soft nproc unlimited
注意事项
1. 配置,只能被特定覆盖。 2. domain 中具体用户比通配符(*)优先级高。 3. soft 和 hard 需要都进行设置,才能生效。 4. /etc/security/limits.d/ 下文件的相同配置可以覆盖 /etc/security/limits.conf 5. soft 设置的值 一定要小于或等于 hard 的值,如果配置文件中软限制设置的比硬限制高,则软限制会使用硬限制的值。 6. nofile 不能设置 unlimited,可以设置的最大值为 1048576(2**20),设置的值大于该数,就会进行登录不了。 7. 通过 ulimit 命令设置软限制不能超过硬限制。 8. root 用户可以通过 ulimit 命令降低和提高硬限制(nofile 的值不能超过 /proc/sys/fs/nr_open 的值)。 9. 非root用户可以通过ulimit命令降低硬限制,但不可以通过ulimit命令提高硬限制。