Some programs like Apache and MySQL require a higher number of file descriptors.
This is how you can increase that limit for all users in CentOS 7
Note: Commands require root access
- Find the default limit – check the open files line – it will be 1024
sudo ulimit -a
- To increase edit nano /etc/sysctl.conf add the below line, save and exit
fs.file-max = 100000
- We also need to increase hard and soft limits
Edit /etc/security/limits.conf add the below lines before the #End, save and exit* soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535
- Next, run the command
sudo sysctl -p
- for MySQL, edit /usr/lib/systemd/system/mysqld.service and add the below 2 lines at the end, save and exit
LimitNOFILE=65535 LimitNPROC=65535
- then increase the table_open_cache and open_files_limit in my.cnf
# reload systemctl sudo systemctl daemon-reload
- if you modified MySQL config, restart MySQL and check values for table_open_cache and open_files_limit
systemctl restart mysqld.service
- run the below command to check the open files limit – change user based on requirement
output should say: open files (-n) 65535# for mysql su - mysql -c 'ulimit -aHS' -s '/bin/bash' # for apache su - apache -c 'ulimit -aHS' -s '/bin/bash