首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么JDK NIO使用这么多anon_inode文件描述符?

问为什么JDK NIO使用这么多anon_inode文件描述符?
EN

Stack Overflow用户
提问于 2011-11-18 00:41:21
回答 2查看 6.8K关注 0票数 5

我正在使用Sun(带有Netty)和1.6.0_26,在lsof中我看到了成百上千的anon_inode文件描述符

代码语言:javascript
复制
$ 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是什么的明确解释,我在Linux内核的源代码树中查看了fs/anon_inodes.c,似乎epoll使用了它,但我不确定为什么我会有这么多。我确实有多个"epoll循环“和计时器线程,但没有我的anon_inode数量那么多。

EN

回答 2

Stack Overflow用户

发布于 2012-02-22 02:13:58

它确实很可能是epoll。默认情况下,选择器使用epoll,从早期的JDK 1.6.x版本开始,除了套接字本身使用的描述符之外,这个选择器impl还使用了比旧选择器更多的文件描述符。如果您使用单个SocketChannel注册多个选择器,您还将使用更多的文件描述符,例如,用于读取和写入的单独选择器。如果Netty使用NIO,它几乎肯定会使用选择器。在一个应用中,由于使用了基于epoll的选择器,我的文件描述符与套接字的比率约为4:1。可以通过更改java.nio.channels.spi.SelectorProvider属性恢复到旧的选择器实现,这将减少描述符的数量,但可能会以性能为代价。

票数 6
EN

Stack Overflow用户

发布于 2011-11-18 03:08:43

也许这些inode与内存映射的“文件”相关,这些“文件”可以转换为Java的直接ByteBuffers。系统调用mmap(2)通常对文件进行操作(使用文件句柄)。但它还支持一个选项MAP_ANONYMOUS来操作内存映射,而不需要实际的文件句柄。这听起来像是在内部需要一个“匿名inode”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8170902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档