linux 进程数最大值修改

实际的系统进程数上限收到3个配置项的影响:

1、threads-max (/proc/sys/kernel/threads_max)

这个值表示物理内存决定的系统进程数上限,fork_init中有:

max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8


2、pid_max (/proc/sys/kernel/pid_max)

这个值表示进程ID的上限。为了兼容旧版,默认为32768(即两个字节)。

<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">echo <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4194303</span> > <span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/proc/sys</span><span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/kernel/pid</span>_max</code>

 3、RLIMIT_NPROC (ulimit -u 或者 getrlimit)

这个值表示单个用户允许的最大进程数上限。系统默认为threads-max的一半:

init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;

init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;

 

 

实验:

某环境上:

threads-max = 139264;

pid_max = 32768

RLIMIT_NPROC = 69632

1、此时,使用根用户不断创建进程,最终创建了约32378,考虑到原有的进程数,比较接近pid_max这个值;

2、改pid_max为18000时,最终创建了17612个进程;

3、修改pid_max为80000,换成普通用户,最终创建了67913个进程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值