8,332 pregleda

Upoznajte CLI program top

12

Evo još jednog od zgodnih članaka s našeg Wikija. Ponekad nam zatreba na brzinu pogledati zauzeće sustava ili na brzinu ubiti program koji se zablokirao. Da ne palimo System monitor koji sam po sebi zauzima dosta resursa i spor je za poluditi to možemo uraditi u Terminalu za pola sekunde. Samo ukucamo “top” i eto svih procesa i podataka o zauzeću resursa! Ne može biti lakše!

Ali naravno, morate se upoznati sa sučeljem i radnjama koje su moguće u ovom programu. Pa krenimo!

Top je CLI alat za praćenje aktivnih procesa (System monitor). Program daje dosta informacija o sistemskim resursima računala.

 

Tako to izgleda u Terminalu

Polja koja se ispisuju

U startu, top ispisuje ova polja:

  • PID : Identifikacijski broj procesa
  • USER : Identifikacijski broj korisnika (efektivni)
  • PR : Prioritet
  • NI : Nice vrijednost
  • VIRT : Virtualna veličina procesa.
  • RES : Zauzeće RAM-a
  • SHR : Dijeljeni RAM
  • S : Status
  • %CPU : Zauzeće procesora u postotcima
  • %MEM : Zauzeće RAM-a u postotcima
  • TIME+ : Vrijeme u kojem je proces koristio CPU
  • COMMAND: Ime programa

Dodatna polja možete dobiti kada pritisnete tipku “f” u interaktivnom načinu rada. Dobiti ćete popis mogućih polja.

Uključujete ih i isključujete pritiskom na prikazano slovo ispred polja. (Prikazati će se ona polja koja imaju * ispred )

Interaktivni i batch način rada

Moguće ga je koristiti u interaktivnom, ili u batch načinu.

Uobičajeno se pokreće u interaktivnom načinu. Program neprekidno ispisuje nove podatke i moguća je interakcija pritiskom tipki tipkovnice.

Međutim, ponekad ćete trebati podatke obraditi drugim programom. Zato koristite batch način rada.

$ top -b

Pomoću -n odredite broj ciklusa u batch načinu rada. Npr:

$ top -b -n 1

Pokreće jedan ciklus i program se zaustavlja.

Praćenje samo pojednih procesa

Ponekad nas zanimaju samo određeni procesi.

Npr. zanimaju nas samo procesi Firefox i compiz.real. Ukucajte njihove PID brojeve (vidi na slici) na ovaj način:

$ top -p 14829,15598

Može i:

$ top -p 14829 -p 15598

Praćenje po korisniku

Možete pratiti i procese koji pripadaju određenom korisniku. Možete koristiti ime korisnika ili njegov UID.

$ top -u branko

ili

$ top -u 500

Može i:

$ top -U branko

U, ili u možete koristiti i u interaktivnom modu. Jednostavno pritisak tipke u i unosa korisnika program nastavlja praćenje po tom korisniku.

Brzina ciklusa

Top na prosječnom računalu izvrši ciklus za oko 0,5 sekundi. Program nije procesorski zahtjevan, ali ako ipak želite procesor iskoristiti za važnije zadatke, postavite duže trajanje intervala.

Za prosječnog korisnika ciklus trajanja izmeđi 1 i 3 sekunde dati će dovoljno informacija o sustavu. Brzinu ciklusa u sekundama određujemo -d opcijom, ili tipkom “s” u interaktivnom modu.

Ako želite, pritiskom na razmaknicu (Space) možete dobiti ispis i prije isteka intervala.

 

Više “prozora”

Pritiskom na tipku A ulazite u rad s više prozora. U svakom od njih su na drugačiji način prikazani aktivni procesi.

To može biti korisno ako ćete ponekad trebati različita praćenja istodobno.

Ubij proces

U interaktivnom načinu stsnite tipku “k”. Nakon toga otkucajte PID procesa i potvrdite s Enter.

Program će zaustaviti taj proces.

 

Eto, ako ste početnik svakako preporučamo da se upoznate s ovim jako korisnim programom. Nešto napredniji je program htop, ali taj program uglavnom ne dolazi predinstaliran na većini Linux distribucija pa je bolje ipak poznavati ovaj sveprisutan program. Nikada ne znate kada će vam zatrebati.

 

Izvor:HOW

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Povezani članci:

Manipuliranje fotografija...
Bash trikovi na bashoneli...
Hack the shell drugi dio ...
Uhvatite snimku zaslona k...
Isprobali smo Conky Spect...

12 Responses

  1. 4ndY kaže:

    top++ = htop :-)

  2. lutherus kaže:

    i trpanje u txt fajl

  3. alokin kaže:

    jel moze neko da mi objasni zasto top i htop daju razlicite rezultate? na primer top pokazuje da je zauzece memorije 700+ mb a htop pokazuje samo 240 mb

    • Tihomir kaže:

      Vidis, zanimljivo. Nisam na to obracao paznju, ali i meni pokazuje top 3100MB, a htop 1500MB. System monitor prikazuje vrijednost istu kao i htop.
      BTW htop mi je neusporedivo vise upotrebljev i iskoristiv za razliku od top-a..

    • retsam kaže:

      Potrošnja RAM-a se NIKAD ne gleda s top-om već free alatom jer top pokazuje “ne prilagođene” vrijednosti jer je tvoja memorija zapravo suma “free”, “buffers” i “cached”, a ono što top prikazuje je “used” – “buffers” i “cached” koristi free ili htop za pravilan prikaz potrošnje.

    • šumski kaže:

      Zato jer daje zauzeće memorije + cache

    • alokin kaže:

      ok, hvala na odgovorima… to me je pitanje “mucilo” vec neko vreme i nikako da otkrijem zasto je to tako

  4. shrike kaže:

    Također, htop jedini točno prikazuje zauzeće procesora kod procesora sa više jezgri (ili kod ekipe koja ima više procesora).

  5. Marin kaže:

    Kako napraviti ako recimo neki proces vrti 100% na odredjeni broj sekundi da sam sebi ubije taj proces?

    • Z0K4 kaže:

      Sljedeća skripta bi ti trebala pomoći… što se tiče loada i tresholda pročitaj ovo štivo:
      http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

      #!/bin/bash

      ## Note: will kill the top-most process if the $CPU_LOAD is greater than the $CPU_THRESHOLD.
      echo
      CPU_LOAD=$(uptime | cut -d”,” -f4 | cut -d”:” -f2 | cut -d” ” -f2 | sed -e “s/\.//g”)
      CPU_THRESHOLD=300
      PROCESS=$(ps aux r)
      TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1)

      if [ $CPU_LOAD -gt $CPU_THRESHOLD ] ; then
      # kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | head -n 1) #original
      # kill -9 $(ps -eo pcpu | sort -k 1 -r | grep -v %CPU | head -n 1)
      kill -9 $TOPPROCESS
      echo “System overloading!”
      echo “Top-most process killed: $TOPPROCESS”
      echo “Load average is at $CPU_LOAD”
      echo
      echo “Active processes:”
      ps aux r

      else
      echo
      echo “No run-aways”
      echo “Load average is at $CPU_LOAD”
      echo
      echo “Active processes:”
      ps aux r
      fi
      exit 0

Ostavi komentar

© 2014 Linux Za Sve. | Impressum | Sadržaj je licenciran pod CC-SA-3.0 ako nije drugačije naznačeno.
Proudly designed by Theme Junkie.