linux提示“Error: Too many open files”
更正一下,我修改完重启终端还是有这个提示,但这个最大文件打开数确实是已经显示改了,重启系统就没了,奶奶的再补充,有群友说了这个: 那我百度”centos7 limits“,显示如下(先不看了,下班了,改天看):如下图,老是提示这个,烦死了百度搜索一大堆:原因是:进程企图打开一个文件,或者叫句柄,但是现在进程打开的句柄已经达到了上限,已经无法打开新句柄了。以下...
·
更正一下,我修改完重启终端还是有这个提示,但这个最大文件打开数确实是已经显示改了,重启系统就没了,奶奶的
再补充,有群友说了这个:
那我百度”centos7 limits“,显示如下(先不看了,下班了,改天看):
如下图,老是提示这个,烦死了
百度搜索一大堆:
原因是:进程企图打开一个文件,或者叫句柄,但是现在进程打开的句柄已经达到了上限,已经无法打开新句柄了。
以下是Linux中句柄的介绍:
- Linux中所有的事物或资源都是以文件的形式存在,比如消息、共享内存、连接等,句柄可以理解为指向这些文件的指针。
对于这些句柄,Linux是有数量限制的,单个进程默认可以打开的句柄数上限,可以用以下命令来查看:
ulimit –a
[root@haproxy ~]# 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) 3804
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) 3804
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
其中的open files一项就是默认的句柄数,此时默认的句柄数是1024
还可以设置某个进程的句柄数上限,命令是:
ulimit –a PID
使用命令修改句柄,重启会失效:
[root@haproxy ~]# ulimit -n 1024000
修改配置文件永久有效:
[root@haproxy ~]# vim /etc/security/limits.conf
* soft nofile 2000
* hard nofile 2000
查看当前系统打开的文件数量
lsof | wc -l
watch "lsof | wc -l"
查看某一进程的打开文件数量
lsof -p pid | wc -l
lsof -p 1234 | wc -l
下面看一下如何查询系统中进程占用的句柄数
lsof -n|awk '{print $2}'|sort|uniq -c|sort-nr|more
重新登录就生效了。不需要重启。
更多推荐
已为社区贡献1条内容
所有评论(0)