NetWorker: Feilsøking av høy minne- eller CPU-bruk etter prosess
Summary: Denne kunnskapsartikkelen gir en oversikt over hvordan du feilsøker høy minne- og/eller CPU-bruk ved hjelp av prosesser.
Instructions
Når du feilsøker et NetWorker-relatert problem, kan det fastslås at én eller flere prosesser bruker store mengder databehandlingsressurser. Operativsystemkommandoer som topp eller Windows Oppgavebehandling kan gi et tidspunktbasert innblikk i systembruken. Vi kan imidlertid også registrere systemressursbruk over et gitt vindu og sammenligne det med andre systemlogger.
NetWorker-logger og -prosesser finner du detaljert under:
Denne kunnskapsartikkelen inneholder en metode som bruker operativsystemfunksjoner og logging.Nonscripted tilnærming: NetWorker: Slik feilsøker du en tilsynelatende henger i NetWorker ved hjelp av nsrwatch-verktøyet.
Microsoft Windows:
På Microsoft Windows-systemer finnes det flere grafiske verktøy som Oppgavebehandling og Performance Monitor som kan brukes til å overvåke ressursbruk av en bestemt prosess. I denne kunnskapsartikkelen skal vi gå gjennom et enkelt satsvis skript som kan kjøres til tidsstempel og vise CPU- og minnebruken til en spesifisert prosess ved hjelp av et brukerdefinert intervall.
Først må vi bestemme hvilken prosess som må overvåkes. Dette kan variere avhengig av problemet. NetWorker-prosessene og -portene skal bidra til å begrense navnet på prosessene og hva de gjør.
Du kan identifisere prosessene på NetWorker-serveren ved hjelp av:
- Oppgavebehandling.
- Oppgaveliste
- nsrrpcinfo -p localhost (krever NetWorker-server eller NetWorker utvidet klientpakke).
1. Opprett et .bat skript som inneholder følgende:
@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
Hvor:
PID = prosess-ID-en for prosessen du vil overvåke.
INTERVAL_IN_SECONDS = den numeriske verdien som representerer hvor mange sekunder mellom hver gang rapporten kjøres.
2. Lagre skriptet som process-monitor.bat på et sted du velger.
3. Åpne en ledetekst og cd for administratoren i katalogen der skriptet ble lagret.
4. Kjør skriptet.

Dette oppretter process-monitor.out-filen i katalogen som skriptet ble kjørt fra. Filen inneholder:
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
Der:
LocalDateTime = Er datoen og klokkeslettet som vises som ÅÅÅÅMMDDHHMMSS.
IDProcess = PID som ble lagt inn i skriptet.
Navn = navnet på prosessen PIDen er tilknyttet.
PercentProcessorTime = Returnerer tiden som alle trådene i denne prosessen brukte prosessoren til å utføre instruksjoner på 100 nanosekunder.
PrivateBytes = Gjeldende antall byte denne prosessen har tildelt i minnet som ikke kan deles med andre prosesser.
5. Hvis du vil stoppe skriptet, bruker du CTRL+C der du blir bedt om å stoppe eller fortsette skriptet.
Disse verdiene er ikke en del av noen NetWorker-kode og er beskrevet i følgende Microsoft-artikkel: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85)
Linux:
På Linux-servere kan du bruke verktøy som topp for å overvåke systemressursbruken til prosesser. I denne kunnskapsartikkelen skal vi gå gjennom et enkelt skallskript som kan kjøres til tidsstempel og vise CPU- og minnebruken til en spesifisert prosess ved hjelp av et brukerdefinert intervall.
1. Logg på NetWorker-serveren via SSH.
2. Bytt til rot:
sudo su -
3. Få PID for NetWorker-prosessen du vil overvåke:
ps -ef | grep nsr
NetWorker-prosesser og -porter
4. Opprett en .sh som inneholder følgende:
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
Hvor:
PID = prosess-ID-en for prosessen du vil overvåke.
søvn 5 = Venter 5 sekunder og kjører igjen, du kan endre dette intervallet etter eget skjønn.
5. Gjør skriptet kjørbart:
chmod +x process_monitor.sh
6. Kjør skriptet:
./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. La skriptet kjøre så lenge du vil overvåke eller reprodusere problemet manuelt der det oppstår mistanke om overutnyttelse av ressursen.
8. Hvis du vil stoppe skriptet, bruker du CTRL+C der du blir bedt om å stoppe eller fortsette skriptet.
. Skriptet oppretter en utdatafil under /tmp med systemets vertsnavn:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root root 2030 Jun 3 12:29 nve_monitor-pid.out
Innholdet i filen inkluderer et tidsstempel med CPU og mem utnyttelse av prosessen som er angitt i skriptet.
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): Slik kopierer du filer til/fra en Linux NetWorker-server.