NetWorker : Dépannage de l’utilisation élevée de la mémoire ou du processeur par processus
Summary: Cet article de la base de connaissances fournit une vue d’ensemble de la façon de résoudre les problèmes liés à l’utilisation élevée de la mémoire et/ou du processeur par un processus.
Instructions
Lors du dépannage d’un problème lié à NetWorker, il peut être déterminé qu’un ou plusieurs processus consomment de grandes quantités de ressources de calcul. Les commandes du système d’exploitation, telles que le haut de gamme ou le Gestionnaire des tâches Windows, peuvent fournir un aperçu ponctuel de l’utilisation du système. Toutefois, nous pouvons également capturer l’utilisation des ressources système au cours d’une fenêtre donnée et la comparer à d’autres journaux système.
Les logs et processus NetWorker sont détaillés sous :
Cet article de la base de connaissances fournit une méthode utilisant les fonctions du système d’exploitation et la journalisation.Approche non scriptée : NetWorker : Résolution d’un blocage apparent dans NetWorker à l’aide de l’utilitaire nsrwatch.
Microsoft Windows :
Sur les systèmes Microsoft Windows, il existe plusieurs outils graphiques, tels que le Gestionnaire des tâches et l’Analyseur de performances, qui peuvent être utilisés pour surveiller l’utilisation des ressources par un processus spécifique. Dans cet article de la base de connaissances, nous allons passer en revue un script de traitement par lots simple qui peut être exécuté pour horodater et afficher l’utilisation du processeur et de la mémoire d’un processus spécifié à l’aide d’un intervalle défini par l’utilisateur.
Tout d’abord, nous devons déterminer quel processus doit être surveillé. Cela peut varier en fonction du problème. Les processus et ports NetWorker doivent vous aider à préciser le nom des processus et leur utilité.
Vous pouvez identifier les processus sur le serveur NetWorker à l’aide des éléments suivants :
- Gestionnaire des tâches.
- Liste des tâches
- nsrrpcinfo -p localhost (nécessite le serveur NetWorker ou le package NetWorker Extended Client).
1. Créez un script .bat contenant les éléments suivants :
@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
Où :
PID = ID du processus que vous souhaitez surveiller.
INTERVAL_IN_SECONDS = valeur numérique qui représente le nombre de secondes entre chaque exécution du rapport.
2. Enregistrez le script en tant que process-monitor.bat à l’emplacement de votre choix.
3. Ouvrez une invite de commande administrateur et accédez au répertoire dans lequel le script a été enregistré.
4. Exécutez le script.

Cela crée le fichier process-monitor.out dans le répertoire à partir duquel le script a été exécuté. Le fichier contient :
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
Où :
LocalDateTime = correspond à la date et à l’heure indiquées sous la forme YYYYMMDDHHMMSS.
IDProcess = le PID qui a été saisi dans le script.
Name = le nom du processus auquel le PID est associé.
PercentProcessorTime = renvoie le temps écoulé pendant lequel tous les threads de ce processus ont utilisé le processeur pour exécuter des instructions en 100 nanosecondes.
PrivateBytes = nombre actuel d’octets que ce processus a alloués dans la mémoire qui ne peuvent pas être partagés avec d’autres processus.
5. Pour arrêter le script, utilisez CTRL+C , où vous serez invité à arrêter ou à continuer le script.
Ces valeurs ne font partie d’aucun code NetWorker et sont détaillées dans l’article Microsoft suivant : https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85)
Linux :
Sur les serveurs Linux, vous pouvez utiliser des outils tels que top pour surveiller l’utilisation des ressources système des processus. Dans cet article de la base de connaissances, nous allons passer en revue un script shell simple qui peut être exécuté pour horodater et afficher l’utilisation du processeur et de la mémoire d’un processus spécifié à l’aide d’un intervalle défini par l’utilisateur.
1. Connectez-vous au serveur NetWorker via SSH.
2. Passez à l’utilisateur root :
sudo su -
3. Obtenez le PID du processus NetWorker que vous souhaitez surveiller :
ps -ef | grep nsr
4. Créez un .sh contenant les éléments suivants :
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
Où :
PID = ID du processus que vous souhaitez surveiller.
sommeil 5 = Attend 5 secondes et s’exécute à nouveau, vous pouvez modifier cet intervalle à votre discrétion.
5. Rendez le script exécutable :
chmod +x process_monitor.sh
6. Exécutez le 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. Laissez le script en cours d’exécution pendant toute la durée pendant laquelle vous souhaitez surveiller ou reproduisez manuellement le problème où une surutilisation présumée des ressources se produit.
8. Pour arrêter le script, utilisez CTRL+C , où vous serez invité à arrêter ou à continuer le script.
. Le script crée un fichier de sortie sous /tmp avec le nom d’hôte du système :
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root root 2030 Jun 3 12:29 nve_monitor-pid.out
Le contenu du fichier comprend un horodatage avec l’utilisation du processeur et de la mémoire du processus spécifié dans le 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) : Copier des fichiers vers/depuis un serveur NetWorker Linux.