linux-进程限制

摘要

待续。。。

进程和线程的区别

典型的区别在于

  • 同一进程的线程共享进程的内存空间
  • 而进程在不同的内存空间中运行

pid_max

1
cat /proc/sys/kernel/pid_max

所以上面的命令返回32768,这意味着我可以在我的系统中同时执行32768进程,这些进程可以在不同的内存空间中运行。

threads-max

1
cat /proc/sys/kernel/threads-max

如:126406,这意味着整个系统在共享内存空间中最多可以拥有126406个线程。

ulimit -u

表示用户在特定时间可以拥有的总进程数。

如:63203。这意味着用户可以在同时最多运行63203进程。

因此,假设2个用户同时运行2个进程并且每个进程大量消耗内存,这两个进程最大创建线程数为63203。加起来就正好满足threads-max的126406的限制。

修改限制用户使用的进程数可以通过/etc/security/limits.conf文件来修改

1
2
@student        hard    nproc           50
@student soft nproc 30