插件窝 干货文章 linux最大进程数怎么查看

linux最大进程数怎么查看

限制 进程 系统 线程 756    来源:    2025-05-15

在Linux系统中,查看和配置最大进程数(包括用户级和系统级限制)可以通过以下几种方法:


1. 查看系统级最大进程数

系统全局的进程数限制由内核参数 kernel.pid_max 决定:

cat /proc/sys/kernel/pid_max
# 或
sysctl kernel.pid_max
  • 说明:默认值通常为 32768(32位系统)或 4194304(64位系统),表示系统最多能创建的进程数(包括线程)。

2. 查看用户级最大进程数

每个用户能创建的进程数受 ulimit 限制:

ulimit -u
  • 说明:输出结果为单用户的最大进程数(如 63204)。若显示 unlimited 表示无限制。

3. 查看当前已用进程数

统计当前系统中的进程数量(PID总数):

ps -eLf | wc -l  # 包括线程
# 或
ps -e --no-headers | wc -l  # 仅进程

4. 查看系统实际支持的线程数限制

线程数受内核参数 threads-max 限制:

cat /proc/sys/kernel/threads-max
  • 说明:通常为 pid_max * 2

5. 修改限制(临时生效)

  • 临时修改系统级限制

    echo 100000 > /proc/sys/kernel/pid_max
    # 或
    sysctl -w kernel.pid_max=100000
    
  • 临时修改用户级限制

    ulimit -u 100000
    

6. 永久修改限制

  • 系统级(pid_max
    编辑 /etc/sysctl.conf,添加以下行后执行 sysctl -p

    kernel.pid_max = 100000
    
  • 用户级(ulimit
    编辑 /etc/security/limits.conf,添加:

    * soft nproc 100000
    * hard nproc 100000
    

    (需重新登录生效)


7. 检查其他可能影响进程数的配置

  • cgroup 限制(适用于容器环境): bash cat /sys/fs/cgroup/pids/user.slice/pids.max

关键点总结:

  • 系统级kernel.pid_max 定义PID最大值。
  • 用户级ulimit -u/etc/security/limits.conf 控制单用户限制。
  • 线程数threads-max 可能进一步限制线程总数。

如果遇到 fork: retry: Resource temporarily unavailable 错误,通常是因为这些限制被触发了。