NetWorker: занят Linux Сервер NetWorker сообщает сообщение «nsrd RPC critical Не удается принять клиентское подключение: Слишком много открытых файлов»
Summary: Занятый сервер Linux NetWorker сообщает сообщение «nsrd RPC critical Не удается принять клиентское подключение: Слишком много открытых файлов»
Symptoms
Сервер NetWorker перестает отвечать, в том числе:
- Консоль NMC зависает на индикаторе выполнения
- Переменная
nsradminКоманда не возвращает - Переменная
nsrwatchне возвращается - Клиенты теряют связь
Управляющие программы на сервере NetWorker для Linux начинаются со слишком низкого лимита открытых файлов. Это связано с тем, что демоны не наследуют ограничения для каждого процесса во время запуска. Используемое ограничение снижается до 1024. Этого может быть недостаточно для более крупных зон данных.
Cause
Предельное значение открытых файлов на сервере NetWorker слишком низкое.
- Получение PID для nsrd
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
PID является частью пути в
/proc/<nsrd_PID>/limitsДля проверки с помощьюcat:
$ cat /proc/4021/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 63833 63833 processes Max open files 1024 1024 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 63833 63833 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 $
Resolution
Создайте отдельный сценарий запуска для серверов NetWorker с высокой нагрузкой, включив следующую переменную среды перед запуском служб NetWorker:
Чтобы выполнить настройку на уровне полной ОС, выполните следующие действия.
Откройте дескрипторы файлов: Измените значение параметра «Открытые дескрипторы файлов» на минимальное:
- 8192 (небольшая среда NetWorker)
- 16384 (средняя среда NetWorker)
- 32768 (большая среда NetWorker)
Определения небольшого, среднего и крупного сервера NetWorker можно найти в Руководстве по оптимизации и планированию производительности NetWorker.
Макс. количество открытых файлов
На сервере Linux NetWorker добавьте ulimit -n 8192 В .bash_profile и перезапустите текущую сессию.
Чтобы задать минимум и максимум дескрипторов файлов для каждого процесса, выполните следующие действия. Red Hat 7, SLES 12, SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Пример:prlimit --pid 12345 --nofile=1024:4096
Чтобы задать минимум и максимум дескрипторов файлов для каждого процесса, выполните следующие действия. Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsПример:echo -n "Max open files=4096:16384" > /proc/1208/limits
Параметры TCP
Добавьте следующие параметры TCP, когда сервер NetWorker работает с высокой нагрузкой (параллельные запуски с большим количеством запросов сокетов, отправляемых на порты серверных приложений):
- На сервере Linux NetWorker добавьте следующие параметры TCP в
/etc/sysctl.confи запустите файлsysctl --system:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - На сервере Linux NMC измените максимальное значение файла на 65536, чтобы обеспечить возможность подключения к базе данных Postgres при работе сервера NetWorker с высокой нагрузкой:
echo 65536 > /proc/sys/fs/file-max