NetWorker: Solución de problemas de alto uso de memoria o CPU por proceso

Summary: En este artículo de la base de conocimientos, se proporciona una visión general de cómo solucionar problemas de alto uso de memoria o CPU por parte de un proceso.

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 solución de un problema relacionado con NetWorker, se puede determinar que uno o más procesos consumen grandes cantidades de recursos informáticos. Los comandos del sistema operativo, como top o el Administrador de tareas de Windows, pueden proporcionar información de un punto en el tiempo del uso del sistema; Sin embargo, también podemos capturar el uso de recursos del sistema en una ventana determinada y compararlo con otros registros del sistema.

Los registros y los procesos de NetWorker se detallan en:

En este artículo de la base de conocimientos, se proporciona un método que utiliza las funciones y el registro del sistema operativo. 
NOTA: La compatibilidad con NetWorker no crea scripts personalizados. Los scripts proporcionados en este artículo de la base de conocimientos se pueden utilizar para y tienen una función mínima. Puede usar estos scripts como plantillas para crear sus propios scripts en función de las configuraciones específicas del entorno o las preferencias de solución de problemas.

Enfoque sin script: NetWorker: Cómo solucionar un bloqueo aparente en NetWorker mediante la utilidad nsrwatch.


Microsoft Windows:

En los sistemas de Microsoft Windows, existen varias herramientas gráficas, como el Administrador de tareas y el Monitor Este hipervínculo lo redirige a un sitio web fuera de Dell Technologies.de rendimiento, que se pueden utilizar para monitorear el uso de recursos por parte de un proceso específico. En esta base de conocimientos, revisaremos un script por lotes simple que se puede ejecutar para marcar la fecha y hora y mostrar el uso de CPU y memoria de un proceso especificado mediante un intervalo definido por el usuario.

Primero debemos determinar qué proceso debe ser monitoreado. Esto puede variar según el problema. Los procesos y puertos de NetWorker deben ayudar a acotar el nombre de los procesos y lo que hacen. 

Puede identificar los procesos en NetWorker Server mediante:

  • Administrador de tareas.
  • Lista de tareas 
  • nsrrpcinfo -p localhost (requiere el servidor de NetWorker o el paquete de cliente extendido de NetWorker).

1. Cree un script de .bat que contenga lo siguiente:

@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

Donde:
PID = el ID de proceso del proceso que desea monitorear.
INTERVAL_IN_SECONDS = el valor numérico que representa cuántos segundos transcurren entre cada momento de ejecución del informe. 

2. Guarde el script como process-monitor.bat en una ubicación de su elección.
3. Abra un símbolo del sistema de administrador y vaya al directorio donde se guardó el script. 
4. Ejecute el script. 

process-monitor.bat ejemplo de ejecución

Esto crea el archivo process-monitor.out en el directorio desde el cual se ejecutó el script. El archivo contiene lo siguiente:

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

Dónde:

LocalDateTime = ¿La fecha y hora se muestran como AAAAMMDDHHMMSS?
IDProcess = el PID que se ingresó en el script.
Nombre = el nombre del proceso con el que está asociado el PID.
PercentProcessorTime = Devuelve el tiempo transcurrido en el que todos los subprocesos de este proceso utilizaron el procesador para ejecutar instrucciones en 100 nanosegundos.
PrivateBytes = cantidad actual de bytes que este proceso ha asignado en la memoria que no se pueden compartir con otros procesos.

5. Para detener la secuencia de comandos, utilice CTRL+C , donde se le pedirá que detenga o continúe la secuencia de comandos.

Estos valores no forman parte de ningún código de NetWorker y se detallan en el siguiente artículo de Microsoft: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85) Este hipervínculo lo redirige a un sitio web fuera de Dell Technologies.
 

Linux:

En los servidores Linux, puede usar herramientas como topEste hipervínculo lo redirige a un sitio web fuera de Dell Technologies. para monitorear el uso de recursos del sistema de los procesos.  En esta base de conocimientos, revisaremos un script de shell simple que se puede ejecutar para marcar la fecha y hora y mostrar el uso de CPU y memoria de un proceso especificado mediante un intervalo definido por el usuario.

1. Inicie sesión en el servidor de NetWorker mediante SSH.
2. Cambie a root:

sudo su -

3. Obtenga el PID del proceso de NetWorker que desea monitorear:

ps -ef | grep nsr

Procesos y puertos de NetWorker

4. Cree un .sh que contenga lo siguiente:

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

Donde:
PID = el ID de proceso del proceso que desea monitorear.
sleep 5 = Espera 5 segundos y se ejecuta de nuevo, puede cambiar este intervalo según su criterio.

5. Haga que el script sea ejecutable:

chmod +x process_monitor.sh

6. Ejecute el 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. Deje el script en ejecución durante el tiempo que desea monitorear o reproduzca manualmente el problema en el que se sospecha que se produce una utilización excesiva de recursos.
8. Para detener la secuencia de comandos, utilice CTRL+C , donde se le pedirá que detenga o continúe la secuencia de comandos.

NOTA: El script se puede ejecutar en segundo plano mediante nohup. Por ejemplo: nohup ./process_monitor.sh &. El script se ejecuta en segundo plano. Para detener el script, deberá obtener el PID del script 'ps -ef | grep process_monitor' y luego detenerlo usando 'kill -9 process_monitor_PID'9

. El script crea un archivo de salida en /tmp con el nombre de host del sistema:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root      root      2030 Jun  3 12:29 nve_monitor-pid.out

El contenido del archivo incluye un registro de fecha y hora con la utilización de memoria y CPU del proceso especificado en el 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): Cómo copiar archivos hacia y desde un servidor NetWorker Server de 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.