使用ulimit -a 可以查看当前系统的所有限制值,
使用ulimit -n<可以同时打开的文件数>设置用户可以同时打开的 最大文件数
linux系统默认的只要1024
当做负载较大的服务器时,很容易遇:error: too many open files 。 并且有时候进程数太小也会导致卡死服务状态,使用ulimit -n增加 并不是永久添加,这时候就需要修改配置文件使其永久添加
ulimit
参 数:
-a 显示目前资源限制的设定。
-c <core文件上限> 设定core文件的最大值,单位为区块。
-d <数据节区大小> 程序数据节区的最大值,单位为KB。
-f <文件大小> shell所能建立的最大文件,单位为区块。
-H 设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小> 指定可使用内存的上限,单位为KB。
-n <文件数目> 指定同一时间最多可开启的文件数。
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。
-s <堆叠大小> 指定堆叠的上限,单位为KB。
-S 设定资源的弹性限制。
-t <CPU时间> 指定CPU使用时间的上限,单位为秒。
-u <程序数目> 用户最多可开启的程序数目。
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB。
1.切换到root 权限
2.[root@HAmaster ~]# vim /etc/security/limits.conf
在最后面添加
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
noproc 是代表最大进程数
nofile 是代最大文件打开数
3 [root@HAmaster ~]# vim /etc/security/limits.d/20-nproc.conf
#* soft nproc 65535
#root soft nproc unlimited
* soft nproc 65535
* hard nproc 65535
注释掉原本的 直接在下面添加,然后重启,root 和普通用户 的线程 和最大打开文件数了都是65535了
[root@HAmaster ~]# 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) 3802
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) 65535
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
生产环境的案例:
[root@www ~]# vi /etc/security/limits.conf
# End of file
* 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 409600
* hard nofile 409600