====== Linux - Files - Change "Open Files Limit" ====== If you are getting error “Too many open files (24)” then your application/command/script is hitting max open file limit allowed by linux. You need to increase open file limit as below: ===== Increase limit ===== ==== Per-User Limit ==== Open file **/etc/security/limits.conf** Paste following towards end: * hard nofile 500000 * soft nofile 500000 root hard nofile 500000 root soft nofile 500000 **NOTE:** 500000 is fair number. * Once the file is saved, logout and login again. ---- ==== pam-limits ==== This is needed to change limits for daemon processes. Open **/etc/pam.d/common-session**. Add following line: session required pam_limits.so ---- ==== System-Wide Limit ==== Set this higher than user-limit set above. Open **/etc/sysctl.conf**, and add the following: fs.file-max = 2097152 Run: sysctl -p **NOTE:** This will increase the **total** number of files that can remain open system-wide. ---- ===== Verify New Limits ===== Use following command to see max limit of file descriptors: cat /proc/sys/fs/file-max returns: 9223372036854775807 ---- ==== Hard Limit ==== ulimit -Hn returns: 1048576 ---- ==== Soft Limit ==== ulimit -Sn returns: 1024 ---- ===== Check limit for other user ===== su - www-data -c 'ulimit -aHS' -s '/bin/bash' **NOTE:** Just replace www-data by the linux username to check limits for that user. ---- ===== Check limits of a running process ===== ==== Find process-id (PID) ==== ps aux | grep process-name ---- ==== Check the limit ==== cat /proc/XXX/limits **NOTE:** Suppose, XXX is the PID found earlier. ----