首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux中文件描述符的上限

问Linux中文件描述符的上限
EN

Stack Overflow用户
提问于 2012-10-19 09:04:51
回答 2查看 26K关注 0票数 14

在任何Linux系统(特别是ubuntu10.04)中可以使用的文件描述符的上限是什么?

我使用的是Ubuntu10.04(64位),服务器的CPU架构是x86_64,而客户端是i686。现在我已经把fd-上限提高到了400000。

  • 什么是可能的副作用,使用大的no。文件描述符?
  • 我怎么知道不。任何进程都使用的文件描述符?

丁烯

EN

回答 2

Stack Overflow用户

发布于 2012-10-19 09:12:24

您希望查看/proc/sys/fs/file-max。

来自最近的linux/Documentation/sysctl/fs.txt:

文件-最大值和文件-nr: 内核动态地分配文件句柄,但到目前为止还没有释放它们。 文件-max中的值表示Linux内核将分配的文件句柄的最大数量。当您收到大量关于文件句柄耗尽的错误消息时,您可能希望增加此限制。 历史上,file-nr中的三个值表示分配的文件句柄的数量、已分配但未使用的文件句柄的数量以及文件句柄的最大数量。Linux2.6总是将0作为空闲文件句柄的数量来报告--这不是一个错误,它只是意味着分配的文件句柄的数量与使用的文件句柄的数量完全匹配。 尝试分配比文件-max更多的文件描述符是用printk报告的,查找"VFS: file-max限制达到“。

2.6内核使用经验法则根据系统中的内存量来设置file-max。2.6内核中来自fs/file_table.c的一个片段:

代码语言:javascript
复制
/*
 * One file with associated inode and dcache is very roughly 1K.
 * Per default don't use more than 10% of our memory for files. 
 */ 

n = (mempages * (PAGE_SIZE / 1024)) / 10;
files_stat.max_files = max_t(unsigned long, n, NR_FILE);

files_stat.max_files是fs.file-max的设置。结果是,每1MB的内存就有大约100台。

票数 14
EN

Stack Overflow用户

发布于 2012-10-19 09:13:41

每个文件描述符占用一些内核内存,因此在某个时候您会耗尽它。尽管如此,在使用基于事件的(Linux上的epoll)服务器体系结构的服务器部署中,并不是闻所未闻的多达10万个文件描述符。因此,400 K并非完全不合理。

关于第二个问题,请参见/proc/PID/fd/ or /proc/PID/fdinfo目录。

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

https://stackoverflow.com/questions/12970853

复制
相关文章

相似问题

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