NetWorker. Поиск и устранение проблем, связанных с высокой загрузкой памяти или ЦП процессом
Summary: В этой статье базы знаний содержатся общие сведения о том, как устранять неполадки, связанные с использованием большого объема памяти и/или ЦП процессом.
Instructions
При устранении проблемы, связанной с NetWorker, может быть определено, что один или несколько процессов потребляют большое количество вычислительных ресурсов. Команды операционной системы, такие как top или Windows Task Manager, могут давать представление об использовании системы на определенный момент времени; Однако мы также можем фиксировать использование системных ресурсов за определенный период времени и сравнивать их с другими системными журналами.
Журналы и процессы 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
Где:
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, который был введен в скрипте.
Имя = имя процесса, с которым связан 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 Server через 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
Где:
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.