Can't change file descriptor max limit in Ubuntu 20.04 (LTS) x64
Matthew Harrington
Trying to increase system wide file descriptor count on Ubuntu 20.04 (LTS) x64, currently running as a droplet in DigitalOcean. Following the process outlined here; quick summary below:
- Use
ulimit -n... prints 1024 ✅ - Add
fs.file-max=900000andfs.nr_open=9000001to/etc/sysctl.conf - Execute
sysctl -pto make the changes take effect. - Use
ulimit -nto double check the changes... prints 1024 ❌ should have printed 900000!.
I would expect at step 4 to get something other than 1024! What I am doing wrong?
31 Answer
The max file descriptor limit and the ulimit are separate numbers. The ulimit by default is set to 1024 and should probably not be changed in most circumstances because some older libraries have internal hardcoded arrays for file descriptors and may crash if you increase above 1024.
The ulimit for open files is a soft limit and can be raised either manually or by the process itself. For example, ulimit -n 9000
By setting fs.file-max=900000 you are probably actually lowering the open file limit, which by default on Ubuntu 20.04 is much higher.