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.
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.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 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.

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)
Linux:
En los servidores Linux, puede usar herramientas como top 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.
. 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.