Debian11 设置最大进程、线程数
Debian11 设置最大进程、线程数
Linux 系统中可以设置关于资源的使用限制,比如:进程数量,文件句柄数,连接数等等ca。在使用 Linux 系统时,若切换 root 用户为普通用户,可能出现 Resource temporarily unavailable 报错,这是由于当前用户的进程数超出限制。因此需要手动修改 Linux 系统的最大进程数。
1. 关键值
nproc:表示max number of processes,是操作系统级别对每个用户创建的进程数的限制。
nofile:表示max number of open file descriptors,每个进程可以打开的文件数的限制。
hard/soft:soft 是一个警告值,而 hard 则是一个真正意义的阀值,超过就会报错。
2. 查看系统资源
-
查看当前系统的所有限制值
ulimit -a
-
查看用户同时打开的文件数(linux系统默认的只要1024) 也是临时修改(不需要重启),命令后面加参数即可:
ulimit -n 65535
ulimit -n
-
查看Linux系统级的最大打开文件数限制
cat /proc/sys/fs/file-max
3. ulimit
的选项用法
-a 显示目前资源限制的设定
-c <core文件上限> 设定core文件的最大值,单位为区块
-d <数据节区大小> 程序数据节区的最大值,单位为KB
-f <文件大小> shell所能建立的最大文件,单位为区块
-H 设定资源的硬性限制,也就是管理员所设下的限制
-m <内存大小> 指定可使用内存的上限,单位为KB
-n <文件数目> 指定同一时间最多可开启的文件数
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节
-s <堆叠大小> 指定堆叠的上限,单位为KB
-S 设定资源的弹性限制
-t <CPU时间> 指定CPU使用时间的上限,单位为秒
-u <程序数目> 用户最多可开启的程序数目
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB
-
ulimit -a
释义# 核心文件大小(块,-c)0 core file size (blocks, -c) 0 # 数据段大小(kbytes,-d)不受限制 data seg size (kbytes, -d) unlimited # 计划优先级0 scheduling priority (-e) 0 # 计划优先级0 file size (blocks, -f) unlimited # 挂起信号(-i)7258 pending signals (-i) 7258 # 最大锁定内存(KB,-l)64 max locked memory (kbytes, -l) 64 # 最大内存大小(kbytes,-m)不受限制 max memory size (kbytes, -m) unlimited # 打开文件(-n)1024 open files (-n) 1024 # 管道大小(512字节,-p)8 pipe size (512 bytes, -p) 8 # POSIX消息队列(字节,-q)819200 POSIX message queues (bytes, -q) 819200 # 实时优先级0 real-time priority (-r) 0 # 堆栈大小(kbytes,-s)8192 stack size (kbytes, -s) 8192 # cpu时间(秒,-t)无限制 cpu time (seconds, -t) unlimited # 最大用户进程(-u)7258 max user processes (-u) 7258 # 虚拟内存(KB,-v)不受限制 virtual memory (kbytes, -v) unlimited # 文件锁定(-x)不受限制 file locks (-x) unlimited
4. 系统资源限制设置
-
修改
/etc/security/limits.conf
文件,并保存vim /etc/security/limits.conf
-
在最后添加下面这几句
修改/etc/security/limits.conf
的时候root是要单独配置,否则没有效果!* soft core unlimit * hard core unlimit * soft fsize unlimited * hard fsize unlimited * soft data unlimited * hard data unlimited * soft nproc 65535 * hard nproc 63535 * soft stack unlimited * hard stack unlimited * soft nofile 1048576 * hard nofile 1048576 root soft nofile 1048576 root hard nofile 1048576
-
说明
noproc 是代表最大进程数
nofile 是代最大文件打开数
* 是表示修改所有用户的限制
-
永久修改系统的限制可以通过修改
/proc/sys/fs/
下的文件,并保存echo '6553500' > /proc/sys/fs/file-max echo '6553500' > /proc/sys/fs/nr_open
-
然后执行
reboot
命令重启,root和普通用户的线程和最大打开文件数了都是65535