previous.png
Cursus Linux       Advanced       Processen       top   
gnu.png


up.png Process beheer met TOP down.png

Er zijn verschillende mogelijkheden om processen te beheren. Geen van de mogelijkheden is echter zo duidelijk als met de opdracht top. Hiermee wordt een venster getoond met daarin de belangrijkste performance parameters van het systeem. Top is om die reden dan ook een ideale tool om continue open te hebben staan zodat men altijd zicht heeft op de huidige status van het systeem. Top wordt voor twee doeleinden gebruikt: monitoring en beheer van processen. In deze les worden beiden nader bekeken.

top.png
Het programma 'top'.

up.png 1 Wegwijs in top down.png

Op het eerste gezicht lijkt top een heel eenvoudige tool: alles wat men nodig heeft wordt immers standaard al weergegeven. Dat lijkt meschien waar, maar naast de standaard mogelijkheden is er een behoorlijk aantal opties die niet standaard zichtbaar zijn. Zo ziet men in top bijvoorbeeld maar een beperkt aantal van de verschillende kolommen die beschikbaar zijn en is het ook nog eens mogelijk om deze verschillende kolommen te sorteren. Om te bepalen wat men allemaal ziet binnen top, drukt men in een actief top venster op de toets 'f'. Men ziet vervolgens welke kolommen er allemaal getoond kunnen worden. Alle kolommen waar een * voor staat, staan standaard 'aan' in de weergave. Staat die asterisk er niet, dan wordt de betreffende kolom niet getoond. Om ervoor te zorgen dat hij alsnog getoond wordt, drukt men op de letter die voor de betreffende optie staat. Druk bijvoorbeeld op 'j' om ervoor te zorgen dat de kolom P met informatie over de CPU die als laatste gebruikt is getoond wordt.

0101.png
Het kollommen keuze scherm in 'top'.

Ook bestaat er de mogelijkheid om de volgorde van de kolommen aan te passen. Hiervoor drukt men eerst op de toets o waarmee men een overzicht te zien krijgt van alle kolommen die in de standaard weergave staan. Wil men een kolom meer naar links verplaatsen, gebruik dan de hoofdletter voor de betreffende kolom, de kolom meer naar rechts verplaasten, gebruik dan de kleine letter.

remark.png Met het voorgaande kan men in 'top' alle mogelijke aanpassingen doen. Wil men deze aanpassingen opslaan gebruik dan de letter 'w' dewelke ervoor zorgt dat de huidige configuratie van 'top' wordt opgeslagen in het bestand .toprc (top resource). De volgende keer dat top gestart wordt, wordt de configuratie uit dit bestand gelezen.

up.png 2 Performance monitoring met top down.png

De belangrijkste reden om top te gebruiken, is voor de performance-monitoring. In top ziet men namelijk alle informatie die nodig is om te bepalen of het systeem nog wel optimaal werkt.

up.png 2.1 Gemiddelde systeem belasting (Average System Load) down.png

Op de bovenste regel staat informatie over de belasting van het systeem. Hier ziet men hoelang het systeem al aan staat en hoeveel gebruikers er zijn aangemeld. Ook wordt in drie getallen de gemiddelde belasting van het systeem aangegeven. Het eerste getal de gemiddelde belasting over de laatste minuut, het tweede getal de gemiddelde belasting over de laatste vijf minuten, en het derde getal over het laatste kwartier.

020101.png
De drie belastings waarden die worden aangegeven zijn gerelateerd aan de hoeveelheid werk die de kernel nog te doen heeft.

remark.png De 'process scheduler' of kortweg 'scheduler' is het stukje kernel software dat ervoor zorgt dat de verschillende worker-threads aandacht krijgen van een beschikbare CPU (1 core). De worker-threads (onderdelen van een process) staan in een wachtrij te wachten totdat ze door de scheduler een CPU krijgen toegewezen.

up.png 2.1.1 Scheduler activiteit down.png

De drie belastings waarden op deze eerste regel zijn gerelateerd aan de hoeveelheid werk die de kernel nog te doen heeft. Deze hoeveelheid werk wordt afgemeten aan het aantal processen die nog in de queue staan. Let op: het gaat hier dus niet over de belasting van de CPU maar van de scheduler. In het algemeen kan men wel zeggen dat een scheduler die 100% belast is, ook de CPU navenant zal belasten, alhoewel hier een vertekend beeld kan optreden, als een opdracht bijvoorbeeld het I/O systeem zwaar belast.

De belastings waarden kunnen de volgende 3 soorten waarden vertonen:

up.png 2.1.2 Structurele overbelasting down.png

In het geval van een structurele overbelasting, moet men overwegen om processen op een ander systeem te laten draaien of een processor upgrade uit te voeren. In extreme gevallen kan het zelfs voorkomen dat processen zo lang in de queue staan zonder geholpen te worden dat ze de hoop opgeven en denken dat er iets mis is met het systeem. Dit treedt op als de gegeven waarde acht keer hoger is dan de waarde die verwacht mag worden. Dit kan ertoe leiden dat processen spontaan afsterven.

De waarde die hier gegeven wordt is overigens gerelateerd aan het aantal processors dat zich in het systeem bevindt. Heeft het systeem 1 processor dan is 1.00 een optimale waarde, heeft het systeem 2 processors dan is 2.00 de optimale waarde omdat er per processor een scheduler actief is. Heeft een systeem 4 processors waarbij ze allen met (i7) hyperthreading zijn uitgerust dan mag de waarde 8.00 verwacht worden.

up.png 2.2 Status van de processen down.png

De tweede regel van het top-venster toont alle processen samen met hun status als volgt:

020201.png

up.png Zombies down.png

remark.png Wanneer het aantal zombie processen oploopt dan is het tijd op zoek te gaan naar het parent proces dat hiervoor verantwoordelijk is. Het parent proces zal gedebugged moeten worden. Wil men gewoon het aantal zombie processen kwijt dan kan men het systeem herstarten.

up.png 2.3 Processor gebruik down.png

De derde regel in het top-venster toont de parameter processor gebruik.
Het processor gebruik wordt onderscheiden in de volgende onderdelen:

remark.png De waarde types van de CPU belasting in het top-venster kunnen verschillen per distributie, om deze reden worden aan de andere geen aandacht besteed.

020301.png

up.png 2.4 Geheugen gebruik down.png

De laatste twee regels van de top header worden gebruikt om weer te geven hoe het zit met het gebruik van werkgeheugen op het systeem. Eerst ziet men hoeveel werkgeheugen er aanwezig is, daarna wordt aangegeven hoeveel daarvan in gebruik is. Op de 2'de regel staat vervolgens hoe het zit met het gebruik van swap-space.
Hieronder staat een overzicht van de voornaamste parameters:

020401.png

up.png 2.5 Betekenis van de kolommen down.png

Tot slot laat top in verschillende kolommen alle relevante informatie over het gebruik van de computer zien, in de vorm van een reeks processen, 1 proces per lijn. Standaard is het aantal kolommen dat te zien is beperkt, men kan dit aanpassen met de 'f' toets, de 'o' toets gebruikt men om kolom volgorde aan te passen.

Titel Selectie Betekenis
PID A Het Proces-ID van het huidige proces
PPID b Het PID van het parent proces
RUSER c De werkelijke naam van de gebruiker die eigenaar is van de taak
UID d Het User-ID van de eigenaar van het process
USER E De naam van de gebruiker die op dit moment eigenaar is van het proces. Deze naam hoeft niet dezelfde te zijn als de RUSER aangezien dat de naam is van de gebruiker met wiens permissies het proces gestart is
GROUP f Het Group-ID van de effectieve groep van de eigenaar van een taak
TTY g De TTY waaraan het proces verbonden is. Daemon processen zijn doorgaans niet aan een TTY gebonden en om die reden staat hier dan een '?'
PR H De prioriteit van een proces
NI I De nice waarde van de betreffende taak
P j De CPU die laatst gebruikt is. De info heeft alleen zin in een multi-cpu systeem
%CPU K De hoeveelheid CPU tijd dat een proces gebruikt heeft sinds de laatste keer dat het scherm ververst is geweest.
TIME l De hoeveelheid CPU tijd dat een proces gebruikt heeft sinds het gestart is. In cumulatieve modus (zet deze aan of uit met de opdracht S) wordt hier ook alle tijd bij opgeteld die gebruikt is door child processen van dit proces
TIME+ M Geeft meer gedetailleerd de totale CPU tijd van een proces. Het verschil met TIME is dat hier ook hondersten van seconden gegeven worden
%MEM N Geeft aan welk percentage van het aanwezige fysieke geheugen door het proces gebruikt wordt
VIRT O Laat de hoeveelheid geheugen zien die door een proces in gebruik is
SWAP p toont de hoeveelheid geheugen die door het proces gealloceerd is
RES Q hoeveelheid fysiek geheugen dat niet in swap geheugen is weggeschreven
CODE r hoeveelheod code-geheugen in beslag genomen door het proces
DATA s Hoeveelheid data geheugen door het proces gealloceerd
SHR T hoeveelheid shared memory van het proces
nFLT u het aantal page-faults dat dit process inmiddels veroorzaakt heeft
nDRT v het aantal dirty pages dat aan dit proces verbonden is. Een dirty page is een geheugen blok waarin gegevens staan die nog niet zijn weggeschreven naar swap geheugen
S W De status van het proces
  • R - running - proces is actief
  • S - sleeping - proces is actief maar wacht op invoer
  • D - uninterruptable sleep - proces wacht op invoer en kan op dit moment niet normaal worden afgebroken. Wacht totdat de status wijzigd naar R alvorens men het proces kan afsluiten. of gebruik SIGTERM
  • T - traced - het proces is tijdelijk gestopt en wacht totdat het weer geactiveerd wordt
  • Z - zombie - proces is afgesloten maar kan niet afgemeld worden omdat het parent proces niet beschikbaar is
Command X De opdracht die aan het betreffende proces verbonden is
WCHAN y De naam van kernel module die er verantwoordelijk voor is dat het proces de status sleeping heeft

remark.png Heeft men veel aangepast aan de layout van 'top' gebruik dan de opdracht 'W' om de configuratie weg te schrijven in het .toprc bestand. Zo zorgt men ervoor dat top de volgende keer met dezelfde instellingen opstart.

up.png 3 Proces beheer down.png

Men kan 'top' gebruiken om actieve processen te beheren. Dit beheer bestaat uit twee onderdelen:

Hiervoor is een aantal opdrachten vanuit top beschikbaar. Met de toets 'h' verkrijgt men een overzicht van deze opdrachten.

0301.png

Om vanuit top een proces af te sluiten gaat men als volgt tewerk:

  1. druk op de toets 'k', top vraagt nu welk PID men wil afsluiten
  2. voer het PID nummer in. top vraagt nu welk signaal men wil sturen
  3. druk op enter om standaard signaal 15 te sturen

Om vanuit top een proces te renicen gaat men als volgt tewerk:

  1. druk op de toets 'r', top vraagt nu welk PID
  2. voer het PID nummer in. top vraagt nu welke nice waarde men wil instellen
  3. voer de nice waarde in en druk op enter om ze toe te passen

remark.png Bij het opstarten van top kan men aangeven wat men precies wil monitoren. Om alle processen van de gebruiker daemon te zien, gebruikt men top -u daemon. Om alleen processen met PID 10434 te monitoren, gebruikt men de opdracht top -p10434

up.png Samenvatting down.png

In deze les zijn we dieper ingegaan op TOP een programma waarmee men zowel processen kan monitoren als beheren.

up.png Literatuur down.png



previous.png
Cursus Linux       Advanced       Processen       top   
Last modified: Fri Mar 13 13:08:11 2015