Using trial and error, I've found the maximum number I can give to ulimit -Hn
without getting error is 1048576
. Where does that number come from? My sys.fs.file-max
is 20000500
(20 million).
The limit of ulimit -Hn
2.7k views Asked by Yuri Geinish At
2
There are 2 answers
0
On
Actually, this is hardcoded in Linux kernel, in fs/file.c
:
int sysctl_nr_open __read_mostly = 1024*1024;
and is equal to just the number you specified.
Related commits that tried to make it infinite:
- 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
Looks like it hasn't been touched ever since.
Actually, this limit can be increased. Set
fs.nr_open=5242880
in/etc/sysctl.conf
, runsysctl -p
and login again. Your limit is now 5 million! Set both this and file-max.