文章

Linux系统 数量限制

Linux,文件数,进程数,线程数,ulimit。

Linux系统 数量限制

Linux对打开文件数量的限制

所有限制

1
ulimit -a
1
ulimit -n  # 可以看到系统对于单个进程的限制,即open files

系统总打开文件句柄限制(当前系统允许创建的最大文件描述符的数量):/proc/sys/fs/file-max

/proc/sys/fs/nr_open nr_open表示一个线程最多能分配的文件句柄数

当前系统打开的句柄数 /proc/sys/fs/file-nr

查看单个进程打开的文件句柄

1
lsof -p 进程pid

统计当前所有进程的占用的文件描述符的总量

1
lsof | wc -l

查看每个进程打开的文件描述符的数量,并按打开的数量降序排序

1
lsof -n |awk '{print $2}'|sort |uniq -c |sort -nr

最大进程数

查看linux系统默认的最大进程数。

内核级别的配置

1
cat /proc/sys/kernel/pid_max

不能超过内核级别设置的限制,可以修改

1
ulimit -a | grep processes

不能超过内核级别设置的限制,可以修改

1
cat /proc/1/limits | grep processes

最大线程数量

其实,在资源充足的情况下,最大线程数量也可以配置无限大,但一般都有会默认限制,主要影响线程的参数如下:

1
2
3
ulimit -s  # 栈大小设置
ulimit -i  # 阻塞的引号量
ulimit -u  # 最大的线程数/进程数

/proc/sys/目录下的文件:

  • /proc/sys/kernel/threads-max 最大线程数量
  • /proc/sys/vm/max_map_count 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
  • /proc/sys/kernel/pid_max 最大进程数量
本文由作者按照 CC BY 4.0 进行授权