NetWorker: Усунення несправностей із високим обсягом пам'яті або використанням ЦП за процесом
Summary: У цій базі даних наведено огляд того, як усунути неполадки з високим використанням пам'яті та/або ЦП процесом.
Instructions
Під час усунення несправностей, пов'язаних з NetWorker, може бути визначено, що один або кілька процесів споживають велику кількість обчислювальних ресурсів. Команди операційної системи, такі як top або диспетчер завдань Windows, можуть надати точкове уявлення про використання системи; Однак ми також можемо фіксувати використання системних ресурсів протягом певного вікна та порівнювати його з журналами інших систем.
Журнали та процеси NetWorker детально описані нижче:
У цій базі даних передбачено метод використання функцій операційної системи та ведення журналу.Несценарний підхід: NetWorker: Як усунути очевидне зависання в NetWorker за допомогою утиліти nsrwatch.
Microsoft Windows:
У системах Microsoft Windows є кілька графічних інструментів, таких як диспетчер завдань і монітор продуктивності, які можна використовувати для моніторингу використання ресурсів певним процесом. У цій КБ ми розглянемо простий пакетний скрипт, який можна запустити до часової позначки та показати використання процесора та пам'яті вказаним процесом за допомогою визначеного користувачем інтервалу.
Для початку ми повинні визначити, який процес необхідно контролювати. Це може відрізнятися залежно від проблеми. Процеси та порти NetWorker повинні допомогти звузити ім'я процесів і те, що вони роблять.
Визначити процеси на сервері NetWorker можна за допомогою:
- Диспетчер завдань.
- Список завдань
- nsrrpcinfo -p localhost (Потрібен сервер NetWorker або розширений клієнтський пакет NetWorker).
1. Створіть .bat-скрипт, що містить наступне:
@echo OFF
: x
wmic os get LocalDateTime /value >> performance_monitor.out
wmic path win32_perfformatteddata_perfproc_process where IDProcess="PID" get Name, PercentProcessorTime, PrivateBytes, IDProcess /format:list >> performance_monitor.out
timeout INTERVAL_IN_SECONDS
goto x
Where:
PID = ідентифікатор процесу процесу, який ви хочете контролювати.
INTERVAL_IN_SECONDS = числове значення, яке показує, скільки секунд минуло між кожним запуском звіту.
2. Збережіть сценарій як process-monitor.bat у вибраному вами місці.
3. Відкрийте командний рядок адміністратора та перейдіть до каталогу, в якому було збережено скрипт.
4. Запустіть скрипт.

Це створює файл process-monitor.out у каталозі, з якого було запущено скрипт. Файл містить:
LocalDateTime=20240307112701.555000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23605248
LocalDateTime=20240307112723.266000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23605248
LocalDateTime=20240307112729.634000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23605248
LocalDateTime=20240307112735.457000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23670784
Де:
LocalDateTime = Дата й час відображаються як РРРРММДДГГХХМСС.
IDProcess = PID, який було введено до скрипту.
Name = назва процесу, з яким пов'язано PID.
PercentProcessorTime = Повертає час, що минув, протягом якого всі потоки цього процесу використовували процесор для виконання інструкцій за 100 наносекунд.
PrivateBytes = Поточна кількість байтів, виділених цим процесом у пам'яті, які не можуть бути спільними з іншими процесами.
5. Щоб зупинити скрипт, скористайтеся комбінацією клавіш CTRL+C , де вам буде запропоновано зупинити або продовжити скрипт.
Ці значення не є частиною будь-якого коду NetWorker і детально описані в наступній статті Microsoft: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85)
Linux:
На серверах Linux ви можете використовувати такі інструменти, як top, для моніторингу використання системних ресурсів процесами. У цій базі даних ми розглянемо простий скрипт командної оболонки, який можна запустити до часової позначки та показати використання процесора та пам'яті вказаним процесом за допомогою визначеного користувачем інтервалу.
1. Увійдіть на сервер NetWorker через SSH.
2. Перейдіть на root:
sudo su -
3. Отримайте PID процесу NetWorker, який ви хочете відстежувати:
ps -ef | grep nsr
4. Створіть .sh, що містить:
vi process_monitor.sh
#!/bin/bash
#Get Date
cat /proc/meminfo > /tmp/`hostname`_monitor-pid.out
cat /proc/cpuinfo >> /tmp/`hostname`_monitor-pid.out
#Monitor PID
while true; do
echo "Press [CTRL+C] to stop the loop."
DATE=$(date +%Y/%m/%d-%H:%M:%S)
echo -e "\\n$DATE" >> /tmp/`hostname`_monitor-pid.out ; ps -p PID -o %cpu,%mem,cmd >> /tmp/`hostname`_monitor-pid.out
# Wait 5 seconds (change as per your discretion)
sleep 5
done
Where:
PID = ідентифікатор процесу процесу, який ви хочете контролювати.
sleep 5 = Чекає 5 секунд і запускається знову, ви можете змінити цей інтервал на свій розсуд.
5. Зробіть скрипт виконуваним:
chmod +x process_monitor.sh
6. Запустіть скрипт:
./process_monitor.sh
nve:~ # ./process_monitor.sh
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
^C
nve:~ #
7. Залиште скрипт запущеним на час, який ви хочете відстежувати, або вручну відтворіть проблему, коли виникає підозра на надмірне використання ресурсів.
8. Щоб зупинити скрипт, скористайтеся комбінацією клавіш CTRL+C , де вам буде запропоновано зупинити або продовжити скрипт.
. Скрипт створює файл результатів у /tmp із назвою системного вузла:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root root 2030 Jun 3 12:29 nve_monitor-pid.out
Вміст файлу включає позначку часу з використанням процесора та мему процесу, зазначеного у скрипті.
nve:~ # tail -12 /tmp/nve_monitor-pid.out
2024/06/03-12:28:54
%CPU %MEM CMD
0.0 0.3 /usr/sbin/nsrd
2024/06/03-12:29:02
%CPU %MEM CMD
0.0 0.3 /usr/sbin/nsrd
2024/06/03-12:29:07
%CPU %MEM CMD
0.0 0.3 /usr/sbin/nsrd
NetWorker (Linux): Як скопіювати файли на/з сервера Linux NetWorker.