摘要
本文部分内容来源于网络,个人收集整理,请勿传播
进程和线程的区别
典型的区别在于
- 同一进程的线程共享进程的内存空间
- 而进程在不同的内存空间中运行
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 | @student hard nproc 50 |