欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ulimit限制之nproc问题

程序员文章站 2022-07-14 20:58:47
...
引用
#ulimit问题# 关于nproc设置:centos6,内核版本是2.6.32. 默认情况下,ulimit -u的值为1024,是/etc/security/limits.d/90-nproc.conf的值限制;注释掉这个限制后,值为95044;手工设置90-nproc.conf文件,值为新设置的值。想请 问这个95044是怎么来的?


这个问题挺有意思的,这里面有二个信息点:

1. 为什么limit配置文件是 /etc/security/limits.d/90-nproc.conf 而不是其他?
2. 为什么是nproc的值95044,而不是其他。

我们来简单的做下实验:
$ cat /etc/security/limits.d/90-nproc.conf         
*      soft    nproc   8933
$ ulimit -u
8933
 
$ cat /etc/security/limits.d/90-nproc.conf      #注释掉
#*      soft    nproc   8933
$ ulimit -u
385962


我们可以看出就是说当注释掉限制的话,不同的机器值是不同的。
在centos6的/etc/security/limits.d/90-nproc.conf限制下,个人用户可以修改ulimit-u,但root用户没法修改。
我们把etc/security/limits.d/90-nproc.conf改掉,会看到root的ulimit -u 可以修改成功。

我们一步步来看这个问题,首先看下 谁在使用 90-nproc.conf 这个文件:
$ cat t.stp
probe syscall.open.return {
  filename = user_string($filename)
  if (!isinstr(filename, "90-nproc.conf")) next;
  printf("%s %d\n", execname(), pid());
}
$ sudo stap t.stp
sshd 24844

相关标签: ulimit nproc