3.jpg

有时会发现程序运行打开一个文件失败。这个时候就可以考虑查看该进程打开的文件描述符是否已经达到上限。
1.找个该进程对应的id

[root@ky35z ~]# ps -ef | grep java
root     10045 10016  0 12:43 pts/1    00:00:00 grep --color=auto java
root     21715     1  0 Oct20 ?        00:01:48 /pcts/java/jdk1.7.0_75/bin/java -Djava....

2.进入/proc/pid目录

[root@ky35z ~]# cd /proc/21715/

3.查看limits中的文件描述符限制数量

[root@ky35z 21715]# sed -n "/open/p" limits
Max open files            65535                65535                files

可以看到最大可打开的文件数量的软限制为65535。

4.在进入/proc/pid/fd目录,统计总的打开的文件数量

[root@ky35z fd]# ls -lR | grep "^l" | wc -l
55

很显然,没有超出打开的最大文件数量限制。当然你也可以到底打开了哪些文件,使用命令

[root@ky35z fd]# ls -al
微信公众号:爱问CTO
wechat1.jpg

爱问CTO
18 声望2 粉丝

爱问CTO 专业编程问答网站