可以在任何Linux系统(特别是ubuntu 10.04)中使用的文件描述符的上限是多少?
我使用的是Ubuntu 10.04(64位),服务器的CPU架构是x86_64,客户端是i686.现在我把fd-limit增加到400000.
日Thnx
ask*_*ish 14
您想要查看/ proc/sys/fs/file-max.
从最近的linux/Documentation/sysctl/fs.txt:
file-max和file-nr:
内核动态分配文件句柄,但是它还没有再次释放它们.
file-max中的值表示Linux内核将分配的最大文件句柄数.当您收到大量有关用尽文件句柄的错误消息时,您可能希望增加此限制.
从历史上看,file-nr中的三个值表示已分配文件句柄的数量,已分配但未使用的文件句柄的数量以及最大文件句柄数.Linux 2.6总是报告0作为空闲文件句柄的数量 - 这不是错误,它只是意味着分配的文件句柄数与使用的文件句柄数完全匹配.
使用printk报告尝试分配比file-max更多的文件描述符,查找"VFS:达到文件最大限制".
2.6内核使用经验法则file-max根据系统中的内存量进行设置.fs/file_table.c2.6内核中的一个片段:
/*
* 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);
Run Code Online (Sandbox Code Playgroud)
这files_stat.max_files是设置fs.file-max.每1MB内存最终约为100(10%)