Linux系统最大打开文件数量配置
- 前言
- 概念:分为当前进程和系统最大文件数。
- 查看当前进程的最大打开文件数量 ulimit -n ,ulimit -a
- -a参数可以展示出详细的参数,即我们可以对什么资源做限制。
- 系统资源被定义在***/etc/security/limits.conf***的文件中,当我们使用ulimit的时候,就是在使用这个文件里定义的值。
- 查看当前系统的最大文件打开数量
- ulimit
- 如上图的显示结果,列举一些常用的参数
- 查看
- 配置
- 修改进程的最大打开文件数量
- 临时修改 ulimit -n 数值
- 永久修改
前言
这个参数的配置会影响到系统的进程和性能瓶颈。工作中比较常用。
linux系统对文件打开的数量有最大的限制,通常设置为1024,但很容易达到。容易造成系统程序或者系统的瓶颈。
因此,本文从进程本身和系统上说明如何更改linux最大文件数的限制
概念:分为当前进程和系统最大文件数。
系统的最大文件数指的是所有进程可以打开的文件数量总和。
查看当前进程的最大打开文件数量 ulimit -n ,ulimit -a
仅查看最大文件打开数
[root@iZuf6i5xnizusxj9442j52Z ~]# ulimit -n
65535查看所有的
[root@iZuf6i5xnizusxj9442j52Z ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14366
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14366
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
-a参数可以展示出详细的参数,即我们可以对什么资源做限制。
这里的限制有两种类型:soft & hard。
hard资源限制意味着是物理限制;
soft资源限制是由用户进行管理的,soft的最大值由hard来限制。
系统资源被定义在***/etc/security/limits.conf***的文件中,当我们使用ulimit的时候,就是在使用这个文件里定义的值。
[root@iZuf6i5xnizusxj9442j52Z ~]# cat /etc/security/limits.conf#<domain> <type> <item> <value>
##* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4# End of file
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
查看当前系统的最大文件打开数量
[root@iZuf6i5xnizusxj9442j52Z ~]# cat /proc/sys/fs/file-max
366453
ulimit
ulimit是一个可以设置或者汇报当前用户资源限制的命令。
使用ulimit命令需要有管理员权限,它只能在允许使用shell进行控制的系统中使用。它已经被嵌入到shell当中了。
ulimited 表示资源可无限使用 系统的资源。
如上图的显示结果,列举一些常用的参数
查看
ulimit -c # 查看core file文件的最大值
ulimit -d # 查看数据段的最大值
ulimit -e # 查看当前用户的最大调度优先级
ulimit -s # 当前用户的最大栈大小
ulimit -u # 当前用户的最大进程数
ulimit -v # 查看虚拟内存的大小
ulimit -b # 查看socket buffer的大小
ulimit -t # 查看每个进程允许运行的时间
ulimit -n # 查看一个进程可以最多有多少文件描述符
配置
-H 设置硬资源限制.
-S 设置软资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
-u <程序数目> 用户最多可开启的程序数目
修改进程的最大打开文件数量
临时修改 ulimit -n 数值
只在当前的shell生效,再打开其他shell,查看数值不变。
[root@iZuf6i5xnizusxj9442j52Z ~]# ulimit -n 1024
[root@iZuf6i5xnizusxj9442j52Z ~]# ulimit -n
1024
永久修改
[root@iZuf6i5xnizusxj9442j52Z ~]# echo "* soft nofile 1024" >> /etc/security/limits.conf [root@iZuf6i5xnizusxj9442j52Z ~]# cat /etc/security/limits.conf | tail -16#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4# End of file
root soft nofile 65535
root hard nofile 65535
#* soft nofile 65535
* hard nofile 65535
* soft nofile 1024
* soft nofile 1024
[root@iZuf6i5xnizusxj9442j52Z ~]#