java进程打开的文件句柄数异常

最近发现程序有点异常,看了一下打开的句柄数

[root@dev-test-server ~]# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|head -10
 152158 7076
  21344 11305
   2338 30006
   2096 938
....

我的java程序进程ID为7076,可以看到打开15W个文件句柄
然而我看了下系统设定的值

系统所有进程一共可以打开的文件数量
[root@dev-test-server ~]# cat /proc/sys/fs/file-max 
587860
单个进程可以打开的文件句柄数量
[root@dev-test-server ~]# ulimit -n
1024

可以看到单个进程打开的句柄明显超过了限制
不知是哪里理解错了,现在很迷惑,有大神来解释下吗

慕侠2389804
浏览 1366回答 1
1回答

阿波罗的战车

你应该用 lsof -n -p <pid> 查看进程的打开文件,并用 cat /proc/<pid>/limits 查看限制数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java