linux 打开文件数 too many open files 解决方法

Posted yjbjingcha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 打开文件数 too many open files 解决方法相关的知识,希望对你有一定的参考价值。

linux 打开文件数 too many open files 解决方法


too many open files

出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。


查看每一个用户最大同意打开文件数量

ulimit -a

[email protected]:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
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) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

当中 open files (-n) 1024 表示每一个用户最大同意打开的文件数量是1024


查看当前系统打开的文件数量

lsof | wc -l
watch "lsof | wc -l"

查看某一进程的打开文件数量

lsof -p pid | wc -l
lsof -p 1234 | wc -l

设置open files数值方法

ulimit -n 2048

[email protected]:~$ ulimit -n 2048
[email protected]:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2048
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) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

这样就能够把当前用户的最大同意打开文件数量设置为2048了。但这样的设置方法在重新启动后会还原为默认值。


永久设置方法

vim /etc/security/limits.conf
在最后增加
* soft nofile 4096
* hard nofile 4096
最前的 * 表示全部用户。可依据须要设置某一用户,比如

fdipzone soft nofile 8192
fdipzone hard nofile 8192
改完后注销一下就能生效。
















以上是关于linux 打开文件数 too many open files 解决方法的主要内容,如果未能解决你的问题,请参考以下文章

(转)linux 打开文件数 too many open files 解决方法

linux 打开文件数too many open files解决方法

centos7,进程最大打开文件数 too many open files错误

linux下tomcat之too many open files

排查 Too many open files

too many open files 的问题怎么解决