我正在使用 Sun 的 JDK 1.6.0_26 和 NIO(带有 Netty),在 lsof 中我看到了数百个文件描述符anon_inode
:
$ lsof -np 11225 | fgrep -w anon_inode
java 11225 nobody 57u 0000 0,9 0 1386 anon_inode
java 11225 nobody 61u 0000 0,9 0 1386 anon_inode
java 11225 nobody 65u 0000 0,9 0 1386 anon_inode
java 11225 nobody 69u 0000 0,9 0 1386 anon_inode
java 11225 nobody 73u 0000 0,9 0 1386 anon_inode
java 11225 nobody 77u 0000 0,9 0 1386 anon_inode
java 11225 nobody 81u 0000 0,9 0 1386 anon_inode
java 11225 nobody 86u 0000 0,9 0 1386 anon_inode
java 11225 nobody 89u 0000 0,9 0 1386 anon_inode
java 11225 nobody 93u 0000 0,9 0 1386 anon_inode
java 11225 nobody 97u 0000 0,9 0 1386 anon_inode
[...]
我找不到关于什么是匿名 inode 的明确解释,我查看fs/anon_inodes.c
了 Linux 内核的源代码树,似乎可能epoll
使用它,但我不确定为什么会有这么多。我确实有多个“epoll 循环”和计时器线程,但没有我的anon_inode
.