在从版本6的CentOs中,每个用户都有默认的进程限制1024,例如/etc/security/limits.d/90-nproc.conf
* soft nproc 1024
我必须执行后端服务/守护进程“myservice”,这需要在进程限制中有更大的值。 所以我必须覆盖预先configuration的限制(1024)。 为此,我尝试为root和myuser(运行myservice的用户)创build单独的条目。
myuser soft nproc 5000 root soft nproc 5000
接着
service myservice restart
现在限制增加了,似乎这个问题已经解决了! 但它是暂时的,系统重新启动后,限制再次到1024.( 注: myservice被configuration为在启动时启动)
这似乎是由于init进程负责启动系统上的每个服务,因此“myserivce”作为subprocessinheritance了父进程的限制(init默认有1024个限制)。
我search了一下,发现是否有办法增加init的限制,但没有足够的幸运find任何! 我试图改变/ etc / security / limits.d / 90-nproc.conf
* soft nproc 5000
但仍然相同,重新启动后,init仍然有1024个限制,myservice也有1024个限制
注:如果我从shell提示符重新启动myservice,那么它会得到接受的限制(5000),但我想每次重新启动后自动启动它。
有人可以指导我,我可以如何增加“myservice”的进程限制,并重新启动后保存它?
我认为你的问题可能是双重的。 你似乎只是增加软限制,而不是硬限制。 如果硬限制默认值低于定义的软限制,我认为您将继续受到较低值的限制。
此外,这些是每个用户的限制,但不一定是内核的系统configuration限制。 您可能需要使用适当的sysctl命令来设置值。 (使其在/etc/sysctl.conf中/etc/sysctl.conf )
例如,这将为文件描述符设置内核的最大值。 (内核跟踪打开文件的过程,所以这个相同的键与两个ulimit值都是相关的。
sysctl -w fs.file-max=10000
(我认为这可能是基于省略而在当前configuration中缺乏持久性的部分。)
然后,您可以在/etc/security/limits.conf设置每个用户的限制。
* soft nofile 2500 * hard nofile 5000
和/etc/security/limits.d/90-nproc.conf 。
* soft nproc 2500 * hard nproc 5000
这些值当然只是示例,您可以用您的用户replace星号。