最大打开文件描述符(进程限制)似乎有一个硬编码上限 1048576,这是正确的吗?
如果最近发生了变化,我的版本:
Linux mq981 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 13:41:29 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
答案1
它并不像您所说的那么硬编码。您的系统的最大数量是
cat /proc/sys/fs/file-max
对我来说,这将是 3257198。如果您喜欢冒险(即时更改内核参数,mmmmmm),您可以更改该数字。
绝对最大值由以下事实给出:这是long
C 中的整数,因此最大值为 2147483647。
在每个进程的基础上,最大值是
cat /proc/sys/fs/nr_open
(在我的系统上也是你的 1048576)。
从技术上讲,这是一个 unsigned long (请参阅;在 中fs.h
搜索。但是,每个进程打开的文件数必须低于系统范围的最大值,因此它应该低于 2147483647 或低于您的值。unsigned long max_files;
struct files_stat_struct
cat /proc/sys/fs/file-max