ulimit -Hn的限制
The limit of ulimit -Hn
通过反复试验,我发现我可以给 ulimit -Hn
而不会出错的最大数字是 1048576
。这个数字从何而来?我的sys.fs.file-max
是20000500
(两千万)。
实际上,这是硬编码在 Linux 内核中,在 fs/file.c
:
int sysctl_nr_open __read_mostly = 1024*1024;
并且正好等于您指定的数字。
试图使其无限的相关提交:
- https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0c2d64fb6cae9aae480f6a46cfe79f8d7d48b59f
- https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=60fd760fb9ff7034360bab7137c917c0330628c2
看起来它从那以后就再也没有被碰过。
实际上,可以提高此限制。设置 fs.nr_open=5242880
在 /etc/sysctl.conf
、运行 sysctl -p
中重新登录。你的极限是现在
500万!设置这个和文件最大值。
通过反复试验,我发现我可以给 ulimit -Hn
而不会出错的最大数字是 1048576
。这个数字从何而来?我的sys.fs.file-max
是20000500
(两千万)。
实际上,这是硬编码在 Linux 内核中,在 fs/file.c
:
int sysctl_nr_open __read_mostly = 1024*1024;
并且正好等于您指定的数字。
试图使其无限的相关提交:
- https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0c2d64fb6cae9aae480f6a46cfe79f8d7d48b59f
- https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=60fd760fb9ff7034360bab7137c917c0330628c2
看起来它从那以后就再也没有被碰过。
实际上,可以提高此限制。设置 fs.nr_open=5242880
在 /etc/sysctl.conf
、运行 sysctl -p
中重新登录。你的极限是现在
500万!设置这个和文件最大值。