baltun
Администратор
- Сообщения
- 12.279
- Реакции
- 3.082
- Баллы
- 1.833
Как не парадоксально из-за маленького значения дескриптора файлов может падать веб сервер. По умолчанию количество открытых файлов 1024, убедиться в этом можно посмотрев командой:
Для увеличения их количества переходим /etc/sysctl.conf и дописываем в конце файла
Далее переходим в файл /etc/security/limits.conf и дописываем в конце файла
Чтобы изменения применились выполняем
Редактируем файл /usr/lib/systemd/system/mysqld.service и добавляем туда 2 строки
Или можно в секцию mysqld_safe дописать одну строку в my.cnf не актуально для версии 5.7
Для nginx /etc/systemd/system/nginx.service.d в этой папке создаем файл worker_files_limit.conf полный путь получается такой /lib/systemd/system/nginx.service.d/worker_files_limit.conf и добавляем в него следующие строки:
Перезагружаем после изменений
Проверяем наши лимиты
После этих манипуляций как правило пропадает данная ошибка в журнале
После всех изменений требуется перезапустить сервер !!! Так же изменения могут пропадать после крупных обновлений Centos.
Код:
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.
Последнее редактирование: