NetWorker: Solução de problemas de alto uso de memória ou CPU por processo

Summary: Este artigo da KB apresenta uma visão geral de como solucionar problemas de alto uso de memória e/ou CPU por um processo.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Durante a solução de um problema relacionado ao NetWorker, pode ser determinado que um ou mais processos estão consumindo grandes quantidades de recursos de computação. Os comandos do sistema operacional, como o Top ou o Gerenciador de Tarefas do Windows, podem fornecer uma visão point-in-time do uso do sistema; No entanto, também podemos capturar o uso de recursos do sistema em uma determinada janela e compará-lo com outros registros do sistema.

Os logs e processos do NetWorker são detalhados em:

Este artigo da KB apresenta um método que usa as funções do sistema operacional e o registro em log. 
Nota: O suporte do NetWorker não cria scripts personalizados. Os scripts fornecidos neste artigo da KB podem ser usados e têm uma função mínima. Você pode usar esses scripts como modelos para criar seus próprios scripts com base em configurações específicas do ambiente ou preferências de solução de problemas.

Abordagem sem script: NetWorker: Como solucionar problemas de um aparente travamento no NetWorker usando o utilitário nsrwatch.


Microsoft Windows:

Em sistemas Microsoft Windows, existem várias ferramentas gráficas, como o Gerenciador de Tarefas e o MonitorEsse hiperlink direcionará você para um site fora da Dell Technologies. de Desempenho, que podem ser usadas para monitorar o uso de recursos por um processo específico. Neste artigo da KB, analisaremos um script em lote simples que pode ser executado com registro de data e hora e mostraremos o uso da CPU e da memória de um processo especificado usando um intervalo definido pelo usuário.

Primeiro devemos determinar qual processo deve ser monitorado. Isso pode variar dependendo do problema. Os processos e portas do NetWorker devem ajudar a restringir o nome dos processos e o que eles fazem. 

Você pode identificar os processos no servidor do NetWorker usando:

  • Gerenciador de tarefas.
  • Lista de tarefas 
  • nsrrpcinfo -p localhost (requer servidor do NetWorker ou pacote de client estendido do NetWorker).

1. Crie um script .bat contendo o seguinte:

@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 = a ID do processo que você deseja monitorar.
INTERVAL_IN_SECONDS = o valor numérico que representa quantos segundos entre cada vez que o relatório é executado. 

2. Salve o script como process-monitor.bat em um local de sua escolha.
3. Abra um prompt de comando de administrador e acesse o diretório em que o script foi salvo. 
4. Execute o script. 

process-monitor.bat exemplo de execução

Isso cria o arquivo process-monitor.out no diretório a partir do qual o script foi executado. O arquivo contém:

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

Onde:

LocalDateTime = A data e a hora são mostradas como YYYYMMDDHHMMSS.
IDProcess = o PID que foi inserido no script.
Nome = o nome do processo ao qual o PID está associado.
PercentProcessorTime = retorna o tempo decorrido que todos os threads desse processo usaram o processador para executar instruções em 100 nanossegundos.
PrivateBytes = número atual de bytes que esse processo alocou na memória que não pode ser compartilhada com outros processos.

5. Para interromper o script, use CTRL+C , onde você será solicitado a parar ou continuar o script.

Esses valores não fazem parte de nenhum código do NetWorker e são detalhados no seguinte artigo da Microsoft: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85) Esse hiperlink direcionará você para um site fora da Dell Technologies.
 

Linux:

Em servidores Linux, você pode usar ferramentas como topEsse hiperlink direcionará você para um site fora da Dell Technologies. para monitorar o uso de recursos do sistema de processos.  Neste artigo da KB, analisaremos um script de shell simples que pode ser executado com registro de data e hora e mostraremos o uso da CPU e da memória de um processo especificado usando um intervalo definido pelo usuário.

1. Faça login no servidor do NetWorker via SSH.
2. Alterne para root:

sudo su -

3. Obtenha o PID do processo do NetWorker que você deseja monitorar:

ps -ef | grep nsr

Processos e portas do NetWorker

4. Crie um .sh que contenha o seguinte:

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 = a ID do processo que você deseja monitorar.
Sono 5 = Espera 5 segundos e corre novamente, você pode alterar esse intervalo conforme seu critério.

5. Torne o script executável:

chmod +x process_monitor.sh

6. Execute o script:

./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. Deixe o script em execução pelo tempo que você deseja monitorar ou reproduza manualmente o problema em que ocorre uma suspeita de superutilização do recurso.
8. Para interromper o script, use CTRL+C , onde você será solicitado a parar ou continuar o script.

NOTA: o script pode ser executado em segundo plano usando nohup. Por exemplo: nohup ./process_monitor.sh &. O script é executado em segundo plano. Para parar o script, você deve obter o PID do script 'ps -ef | grep process_monitor' e, em seguida, pará-lo usando 'kill -9 process_monitor_PID'9

. O script cria um arquivo de saída em /tmp com o nome de host do sistema:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root      root      2030 Jun  3 12:29 nve_monitor-pid.out

O conteúdo do arquivo inclui um registro de data e hora com a utilização da CPU e da memória do processo especificado no script.

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): Como copiar arquivos de/para um servidor NetWorker no Linux.

Additional Information

Affected Products

NetWorker

Products

NetWorker Family, NetWorker Series
Article Properties
Article Number: 000222888
Article Type: How To
Last Modified: 15 Aug 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.