NetWorker: Risoluzione dei problemi relativi all'utilizzo elevato di memoria o CPU per processo

Summary: Questo articolo della Knowledge Base fornisce una panoramica su come risolvere i problemi relativi all'utilizzo elevato di memoria e/o CPU da parte di un 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 la risoluzione di un problema correlato a NetWorker, è possibile determinare che uno o più processi utilizzano grandi quantità di risorse di elaborazione. I comandi del sistema operativo, ad esempio Gestione attività di Windows o superiore, possono fornire una panoramica point-in-time dell'utilizzo del sistema; Tuttavia, è anche possibile acquisire l'utilizzo delle risorse di sistema in una determinata finestra e confrontarlo con altri registri di sistema.

I registri e i processi di NetWorker sono descritti in dettaglio in:

Questo articolo della Knowledge Base fornisce un metodo che utilizza le funzioni e la registrazione del sistema operativo. 
NOTA: Il supporto di NetWorker non crea script personalizzati. Gli script forniti in questo articolo della Knowledge Base possono essere utilizzati e sono una funzione minima. È possibile utilizzare questi script come modelli per creare script personalizzati in base a configurazioni specifiche dell'ambiente o preferenze di risoluzione dei problemi.

Approccio senza script: NetWorker: Come risolvere un blocco apparente in NetWorker utilizzando l'utilità nsrwatch.


Microsoft Windows:

Nei sistemi Microsoft Windows sono disponibili diversi strumenti grafici, come Gestione attività e MonitoraggioQuesto link ipertestuale indirizza a un sito web esterno a Dell Technologies. prestazioni, che possono essere utilizzati per monitorare l'utilizzo delle risorse da parte di un processo specifico. In questo articolo della KB verrà illustrato un semplice script batch che può essere eseguito in timestamp e che mostra l'utilizzo della CPU e della memoria di un processo specificato utilizzando un intervallo definito dall'utente.

Per prima cosa dobbiamo determinare quale processo deve essere monitorato. Questo può variare a seconda del problema. Le funzioni Processi e porte di NetWorker consentono di restringere il campo dei nomi dei processi e della relativa funzione. 

È possibile identificare i processi sul server NetWorker utilizzando:

  • Gestione attività.
  • Elenco attività 
  • nsrrpcinfo -p localhost (richiede il server NetWorker o il pacchetto client esteso NetWorker).

1. Creare uno script .bat contenente quanto segue:

@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

Dove:
PID = ID processo del processo che si desidera monitorare.
INTERVAL_IN_SECONDS = valore numerico che rappresenta il numero di secondi tra l'esecuzione del report. 

2. Salvare lo script come process-monitor.bat in una posizione a scelta.
3. Aprire un prompt dei comandi dell'amministratore e utilizzare cd per accedere alla directory in cui è stato salvato lo script. 
4. Eseguire lo script. 

process-monitor.bat esempio di esecuzione

In questo modo viene creato il file process-monitor.out nella directory da cui è stato eseguito lo script. Il file contiene:

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

Dove:

LocalDateTime = La data e l'ora vengono visualizzate come AAAAMMGGHHMMSS.
IDProcess = PID immesso nello script.
Name = nome del processo a cui è associato il PID.
PercentProcessorTime = Restituisce il tempo trascorso in cui tutti i thread di questo processo hanno utilizzato il processore per eseguire le istruzioni in 100 nanosecondi.
PrivateBytes = numero corrente di byte allocati da questo processo in memoria che non possono essere condivisi con altri processi.

5. Per arrestare lo script, utilizzare CTRL+C per indicare se viene richiesto di arrestare o continuare.

Questi valori non fanno parte di alcun codice NetWorker e sono descritti in dettaglio nel seguente articolo Microsoft: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85) Questo link ipertestuale indirizza a un sito web esterno a Dell Technologies.
 

Linux:

Sui server Linux è possibile utilizzare strumenti come topQuesto link ipertestuale indirizza a un sito web esterno a Dell Technologies. per monitorare l'utilizzo delle risorse di sistema dei processi.  In questo articolo della KB esamineremo un semplice script di shell che può essere eseguito in timestamp e mostrerà l'utilizzo della CPU e della memoria di un processo specificato utilizzando un intervallo definito dall'utente.

1. Accedere al server NetWorker tramite SSH.
2. Passare a root:

sudo su -

3. Ottenere il PID del processo NetWorker che si desidera monitorare:

ps -ef | grep nsr

Processi e porte di NetWorker

4. Creare un .sh contenente quanto segue:

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

Dove:
PID = ID processo del processo che si desidera monitorare.
sleep 5 = Aspetta 5 secondi e viene eseguito di nuovo, è possibile modificare questo intervallo a propria discrezione.

5. Rendere eseguibile lo script:

chmod +x process_monitor.sh

6. Eseguire lo 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. Lasciare lo script in esecuzione per la durata desiderata o riprodurre manualmente il problema in cui si verifica un sospetto di utilizzo eccessivo delle risorse.
8. Per arrestare lo script, utilizzare CTRL+C per indicare se viene richiesto di arrestare o continuare.

NOTA: lo script può essere eseguito in background utilizzando nohup. Ad esempio: nohup ./process_monitor.sh &. Lo script viene eseguito in background. Per fermare lo script, è necessario ottenere il PID dello script 'ps -ef | grep process_monitor' quindi interromperlo con 'kill -9 process_monitor_PID'9

. Lo script crea un file di output in /tmp con il nome host del sistema:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root      root      2030 Jun  3 12:29 nve_monitor-pid.out

Il contenuto del file include un timestamp con l'utilizzo della CPU e della memoria del processo specificato nello 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): Come copiare file da/verso un server NetWorker 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.