Важно Увеличиваем дескрипторы (Open Files Limit) в Centos 7

baltun

Администратор
Сообщения
10.732
Реакции
2.542
Баллы
2.003
Как не парадоксально из-за маленького значения дескриптора файлов может падать веб сервер. По умолчанию количество открытых файлов 1024, убедиться в этом можно посмотрев командой:
Код:
sudo ulimit -a

Для увеличения их количества переходим /etc/sysctl.conf и дописываем в конце файла
Код:
fs.file-max = 5000

Далее переходим в файл /etc/security/limits.conf и дописываем в конце файла
Код:
* soft nproc 5000
 * hard nproc 5000
 * soft nofile 5000
 * hard nofile 5000

Чтобы изменения применились выполняем
Код:
sudo sysctl -p

Редактируем файл /usr/lib/systemd/system/mysqld.service и добавляем туда 2 строки
Код:
LimitNOFILE=5000
LimitNPROC=5000

Или можно в секцию mysqld_safe дописать одну строку в my.cnf не актуально для версии 5.7
Код:
[mysqld_safe]
open-files-limit = 5000

Корректируем в конфигурационном файле параметры table_open_cache и open_files_limit в my.cnf
reload systemctl
sudo systemctl daemon-reload
systemctl restart mysqld.service

Для nginx /etc/systemd/system/nginx.service.d в этой папке создаем файл worker_files_limit.conf полный путь получается такой /lib/systemd/system/nginx.service.d/worker_files_limit.conf и добавляем в него следующие строки:
Код:
[Service]
LimitNOFILE=5000

Перезагружаем после изменений
Код:
systemctl daemon-reload
systemctl restart nginx.service

Проверяем наши лимиты
Код:
cat /proc/$(cat /run/nginx.pid)/limits
cat /proc/$(cat /run/mysqld/mysqld.pid)/limits

После этих манипуляций как правило пропадает данная ошибка в журнале
Код:
2015/11/25 04:47:46 [alert] 8843#8843: setrlimit(RLIMIT_NOFILE, 16384)

После всех изменений требуется перезапустить сервер !!! Так же изменения могут пропадать после крупных обновлений Centos.
 
Последнее редактирование:
Назад
Верх Низ