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 і перезапустити поточну сесію.
Щоб встановити мінімальний і максимальний дескриптори файлів для процесу: Червоний Капелюх 7, СЛЕС 12, СЛЕС 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Приклад:prlimit --pid 12345 --nofile=1024:4096
Щоб встановити мінімальний і максимальний дескриптори файлів для процесу: Червоний капелюх 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 - На NMC-сервері Linux оновіть максимальне значення файлу до 65536, щоб забезпечити підключення до бази даних Postgres, коли сервер NetWorker працює з великим навантаженням:
echo 65536 > /proc/sys/fs/file-max