NetWorker: Suuren muistin tai suorittimen käytön vianmääritys prosessin mukaan
Summary: Tässä tietämyskannan artikkelissa on yleiskatsaus suuren muistin ja/tai suorittimen käytön vianmääritykseen.
Instructions
NetWorkeriin liittyvän ongelman vianmäärityksen aikana voidaan todeta, että yksi tai useampi prosessi kuluttaa suuria määriä laskentaresursseja. Käyttöjärjestelmän komennot, kuten yläreuna tai Windowsin tehtävienhallinta, voivat antaa ajankohdan tietoja järjestelmän käytöstä. Voimme kuitenkin myös tallentaa järjestelmän resurssien käytön tietyltä ikkunalta ja verrata sitä muihin järjestelmälokeihin.
NetWorker-lokit ja -prosessit on kuvattu kohdassa:
Tämä tietämyskannan artikkeli sisältää menetelmän, joka käyttää käyttöjärjestelmän toimintoja ja lokiin kirjaamista.Ei-käsikirjoitettu lähestymistapa: NetWorker: Näennäisen jumiutumisen vianmääritys NetWorkerissa nsrwatch-apuohjelmalla.
Microsoft Windows:
Microsoft Windows -järjestelmissä on useita graafisia työkaluja, kuten Task Manager ja Performance Monitor, joiden avulla voidaan seurata resurssien käyttöä tietyssä prosessissa. Tässä tietämyskannan artikkelissa käydään läpi yksinkertainen eräkomentosarja, joka voidaan suorittaa aikaleimaan ja näyttää tietyn prosessin suorittimen ja muistin käyttö käyttäjän määrittämän aikavälin avulla.
Ensin on määriteltävä, mitä prosessia on seurattava. Tämä voi vaihdella ongelman mukaan. NetWorker-prosessien ja -porttien pitäisi auttaa rajaamaan prosessien nimiä ja niiden toimintoja.
NetWorker-palvelimen prosessit voidaan tunnistaa seuraavasti:
- Tehtävienhallinta.
- Tehtäväluettelo
- nsrrpcinfo -p localhost (edellyttää NetWorker-palvelinta tai NetWorker extended client -pakettia).
1. Luo .bat komentosarja, joka sisältää seuraavat:
@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
Missä:
PID = valvottavan prosessin tunnus.
INTERVAL_IN_SECONDS = numeerinen arvo, joka ilmaisee, kuinka monta sekuntia raportin suorittamisen välillä on.
2. Tallenna komentosarja process-monitor.bat muodossa valitsemaasi paikkaan.
3. Avaa järjestelmänvalvojan komentokehote ja siirry cd-komennolla hakemistoon, johon komentosarja on tallennettu.
4. Suorita komentosarja.

Tämä luo process-monitor.out-tiedoston hakemistoon, josta komentosarja suoritettiin. Tiedosto sisältää seuraavat:
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
Sijainti:
LocalDateTime = on päivämäärä ja aika, jotka näkyvät muodossa VVVVVKKDDHHMMSS.
IDProcess = PID, joka syötettiin komentosarjaan.
Name = sen prosessin nimi, johon PID liittyy.
PercentProcessorTime = Palauttaa kuluneen ajan, jonka kaikki tämän prosessin säikeet käyttivät suoritinta käskyjen suorittamiseen 100 nanosekunnissa.
PrivateBytes = Nykyinen määrä tavuja, jotka tämä prosessi on varannut muistiin, jota ei voi jakaa muiden prosessien kanssa.
5. Voit pysäyttää komentosarjan näppäinyhdistelmällä CTRL+C , jolloin sinua kehotetaan pysäyttämään komentosarja tai jatkamaan sitä.
Nämä arvot eivät ole osa NetWorker-koodia, ja ne on kuvattu seuraavassa Microsoftin artikkelissa: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85)
Linux:
Linux-palvelimilla voit käyttää työkaluja, kuten yläosaa , prosessien järjestelmäresurssien käytön seuraamiseen. Tässä tietämyskannan artikkelissa käydään läpi yksinkertainen komentotulkkiskripti, joka voidaan suorittaa aikaleimaan ja näyttää tietyn prosessin suorittimen ja muistin käyttö käyttäjän määrittämällä aikavälillä.
1. Kirjaudu NetWorker-palvelimeen SSH-yhteydellä.
2. Vaihda pääkäyttäjään:
sudo su -
3. Hae NetWorker-prosessin tunniste, jota haluat valvoa:
ps -ef | grep nsr
NetWorker-prosessit ja -portit
4. Luo .sh, joka sisältää seuraavat:
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
Missä:
PID = valvottavan prosessin tunnus.
uni 5 = Odottaa 5 sekuntia ja juoksee uudelleen, voit muuttaa tätä aikaväliä harkintasi mukaan.
5. Tee komentosarjasta suoritettava:
chmod +x process_monitor.sh
6. Suorita komentosarja:
./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. Jätä komentosarja käynnissä valvottavaksi ajaksi tai toista manuaalisesti ongelma, jossa epäillään resurssien ylikäyttöä.
8. Voit pysäyttää komentosarjan näppäinyhdistelmällä CTRL+C , jolloin sinua kehotetaan pysäyttämään komentosarja tai jatkamaan sitä.
. Komentosarja luo /tmp-kansioon tulostiedoston, jonka nimi on system:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root root 2030 Jun 3 12:29 nve_monitor-pid.out
Tiedoston sisältö sisältää aikaleiman, jossa näkyy suorittimen ja komentosarjassa määritetyn prosessin muistikäyttö.
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