Hoe het Linux top-commando te gebruiken (en de uitvoer ervan te begrijpen)

  • Dave McKay

    @TheGurkha

  • May 12, 2020, 8:00am EDT
Een terminal prompt op een Linux laptop PC.
Fatmawati Achmad Zaenuri/

Het Linux top-commando is een van de steunpilaren van de Unix-achtige besturingssystemen. De handige display staat vol met nuttige informatie over de lopende processen en het gebruik van hulpbronnen op uw systeem. Maar wist u dat het ook kleuren, highlighting en zelfs elementaire grafieken ondersteunt?

Een Dashboard boordevol informatie

Het top commando bestaat al sinds 1984, en er zijn vele varianten van. Voor dit artikel gebruiken we Ubuntu 18.04 met alle patches toegepast, en versie 3.3.12 van top. We hebben ook alles kruislings vergeleken op twee andere test computers, een draait Fedora en de andere Manjaro.

De standaard top weergave propt zo veel mogelijk informatie in het terminal venster. Informatie is een eerste vereiste voor beheer, dus dit is een goede zaak. Een van de eigenschappen van een goede systeembeheerder is het vermogen om opkomende problemen te identificeren en ze aan te pakken voordat ze de service beïnvloeden. top geeft je een dashboard van veel verschillende systeemstatistieken die je helpen precies dat te doen.

Advertentie

De weergave is het best te omschrijven als functioneel, in plaats van intuïtief, en er zijn afkortingen in overvloed. Wanneer je top voor het eerst tegenkomt, voelt het krap, cryptisch en afstotend. Maar met een paar drukken op de knop kun je de inhoud en opmaak van het scherm aanpassen aan wat voor jou belangrijk is.

Controleer uw versie van top

Om te controleren welke versie van top u hebt, typt u het volgende in een terminalvenster:

top -v

top -v in een terminalvenster.

Als uw versie ver achter ligt op 3.3.12, ondersteunt deze mogelijk niet alle functies die we gaan behandelen.

De standaardweergave

U kunt top starten door het volgende in te typen en op “Enter” te drukken:

top

top in een terminalvenster.

Advertentie

De standaardweergave bevat twee informatiegebieden: het overzichtsgebied (of dashboard), en het taakgebied (of proceslijst). Standaard werkt top de weergave elke drie seconden bij – u zult een lichte flikkering opmerken wanneer dit gebeurt.

de standaard bovenste weergave in een terminalvenster.

De eerste regel met getallen op het dashboard bevat de tijd, hoe lang de computer al draait, het aantal mensen dat is ingelogd en wat de gemiddelde belasting is geweest in de afgelopen één, vijf en vijftien minuten. Op de tweede regel staat het aantal taken en hun status: lopend, gestopt, slapend of zombie.

Op de derde regel staan de volgende waarden voor de centrale verwerkingseenheid (CPU):

  • us: Hoeveelheid tijd die de CPU besteedt aan het uitvoeren van processen voor mensen in de “gebruikersruimte.”
  • sy: Hoeveelheid tijd besteed aan het uitvoeren van systeem “kernel space” processen.
  • ni: Hoeveelheid tijd besteed aan het uitvoeren van processen met een handmatig ingestelde mooie waarde.
  • id: Hoeveelheid inactieve tijd van de CPU.
  • wa: Hoeveelheid tijd die de CPU besteedt aan het wachten tot I/O is voltooid.
  • hi: Hoeveelheid tijd besteed aan het bedienen van hardware-interrupts.
  • si: Hoeveelheid tijd besteed aan het bedienen van software-interrupts.
  • st: Hoeveelheid tijd die verloren gaat door het draaien van virtuele machines (“steel time”).

De vierde regel toont de totale hoeveelheid (in kibytes) fysiek geheugen, en hoeveel er vrij, gebruikt, en gebufferd of gecached is.

De vijfde regel toont de totale hoeveelheid (ook in kibytes) swap geheugen, en hoeveel er vrij, gebruikt, en beschikbaar is. Dit laatste omvat geheugen dat naar verwachting uit caches kan worden teruggehaald.

Advertentie

De kolomkoppen in de proceslijst zijn als volgt:

  • PID: Proces-ID.
  • USER: De eigenaar van het proces.
  • PR: Procesprioriteit.
  • NI: De aardige waarde van het proces.
  • VIRT: Hoeveelheid virtueel geheugen dat door het proces wordt gebruikt.
  • RES: Hoeveelheid resident geheugen gebruikt door het proces.
  • SHR: Hoeveelheid gedeeld geheugen gebruikt door het proces.
  • S: Status van het proces. (Zie de lijst hieronder voor de waarden die dit veld kan aannemen).
  • %CPU: Het aandeel CPU-tijd dat door het proces is gebruikt sinds de laatste update.
  • %MEM: Het aandeel van het gebruikte fysieke geheugen.
  • TIME+: Totale CPU-tijd gebruikt door de taak in honderdsten van een seconde.
  • COMMAND: De opdrachtnaam of opdrachtregel (naam + opties).

Geheugenwaarden worden weergegeven in kibibytes. De COMMAND kolom staat buiten het scherm, aan de rechterkant-het paste niet in de afbeelding hierboven, maar we zullen het zo zien.

De status van het proces kan een van de volgende zijn:

  • D: Uninterruptible sleep
  • R: Running
  • S: Sleeping
  • T: Traced (gestopt)
  • Z: Zombie

Druk op Q om top af te sluiten.

Scrollen door het scherm

U kunt op de pijltoetsen omhoog of omlaag, Home, End, en Page Up of Down drukken om omhoog en omlaag te gaan en toegang te krijgen tot alle processen.

Reclame

Druk op de linker- of rechterpijl om de proceslijst zijwaarts te verplaatsen. Dit is handig om kolommen te zien die niet binnen de grenzen van het terminalvenster passen.

In de afbeelding hieronder hebben we een paar keer op de rechterpijl gedrukt om de COMMAND kolom te zien.

boven met de proceslijst opzij geschoven om de opdrachtkolom te onthullen, in een terminalvenster.

De numerieke eenheden wijzigen

Laten we de display-eenheden veranderen in zinnige waarden. Druk op de hoofdletter E om de eenheden te doorlopen die worden gebruikt om geheugenwaarden weer te geven in deze opties: kibibytes, mebibytes, gibibytes, tebibytes, pebibytes, en exbibytes. De gebruikte eenheid is het eerste item op regel vier en vijf.

Druk op kleine letter “e” om hetzelfde te doen voor de waarden in de proceslijst: kibibytes, mebibytes, gibibytes, tebibytes, en pebibytes.

Advertentie

We hebben op E gedrukt om de geheugeneenheden van het dashboard in te stellen op gibibytes en op “e” om de geheugeneenheden van de proceslijst in te stellen op mebibytes.

top met gibibytes en mebibytes gebruikt voor geheugeneenheden in een terminalvenster.

De inhoud van de samenvatting wijzigen

U kunt de weergave-instellingen voor de regels in het dashboard wijzigen of ze volledig verwijderen.

Druk op l om de regel met de belastingsamenvatting (de eerste regel) in of uit te schakelen. In de onderstaande afbeelding hebben we de regel met het belastingsoverzicht verwijderd.

Regel met belastingsoverzicht verwijderd van boven in een terminalvenster.

Als u een multi-core CPU hebt, drukt u op 1 om de weergave te wijzigen en de afzonderlijke statistieken voor elke CPU te zien. Er zijn vier CPU’s op onze computer. We drukken op 1 om te zien hoe hard elk van hen werkt.

top met de cpu-weergave uitgebreid om afzonderlijke CPU-statistieken te zien, in een terminalvenster.

Advertentie

Natuurlijk neemt dit meer schermruimte in beslag binnen het terminalvenster.

U kunt op “t” drukken om de CPU-schermen om te schakelen naar eenvoudige ASCII-grafieken die het gebruikspercentage voor elke CPU laten zien.

top met ASCII-grafieken die de CPU-werkbelasting laten zien, in een terminalvenster.

Voor elke CPU worden in top drie getallen en de grafiek weergegeven. Van links naar rechts zien de getallen er als volgt uit:

  • Het gecombineerde us en ni percentage (gebruikersruimte+taken met niet-standaard mooie instellingen).
  • Het sy percentage (kernelruimte).
  • Het totaal (afgerond op een gehele waarde).

Druk nogmaals op “t” om de weergave van de grafiek te wijzigen in effen bloktekens.

top met ASCII-blokgrafieken die de CPU-werkbelasting weergeven, in een terminalvenster.

Advertentie

Druk nogmaals op “t” om de CPU-weergave en de regel met het taakoverzicht volledig te verwijderen.

Top met de CPU- en taakoverzichtsregels verwijderd, in een terminalvenster.

Druk op “m” om de geheugen- en wisselgeheugenregels door verschillende weergaveopties te laten lopen. Bij de eerste keer drukken worden de statistieken vervangen door een ASCII-grafiek.

top met ASCII-grafieken voor de geheugenstatistieken, in een terminalvenster.

Nogmaals drukken verandert de grafiek in bloktekens.

top met ASCII-blokgrafieken voor de geheugenstatistieken, in een terminalvenster.

Druk nogmaals op “m” om de CPU-lijnen helemaal te verwijderen.

Top met de geheugen- en swap-lijnen verwijderd uit het scherm, in een terminalvenster.

Als u wilt, kunt u CPU- en geheugengrafieken tegelijkertijd zien. Druk gewoon op “t” en “m” totdat u de gewenste combinatie krijgt.

top met ASCII-grafieken voor CPU en geheugen, in een terminalvenster.

Kleur en markeren

U kunt op “z” drukken om kleur aan de weergave toe te voegen.

top met een gekleurde weergave, in een terminalvenster.

Advertentie

Als je denkt aan top, denk je waarschijnlijk niet aan gekleurde displays en ASCII-grafieken, maar ze zijn wel degelijk ingebouwd.

Druk op “y” om lopende taken in de proceslijst te markeren. Druk op “x” om de kolom te markeren die wordt gebruikt om de proceslijst te sorteren. U kunt wisselen tussen vetgedrukte en omgekeerde tekst door op “b” te drukken.”

top met lopende taak en gesorteerde kolom gemarkeerd met omgekeerde tekst, in een terminalvenster.

Sorteren op kolommen

De proceslijst wordt standaard gesorteerd op de %CPU kolom. U kunt de sorteerkolom wijzigen door op het volgende te drukken:

  • P: De %CPU kolom.
  • M: de %MEM-kolom.
  • N: de PID-kolom.
  • T: de TIME+-kolom.
Advertentie

In de onderstaande afbeelding is de proceslijst gesorteerd op de PID kolom.

top met het proces in de lijst gesorteerd op de PID kolom, in een terminal venster.

De volledige opdrachtregel bekijken

Druk op “c” om in de kolom COMMAND om te schakelen tussen weergave van de procesnaam en de volledige opdrachtregel.

top met weergave van de volledige opdrachtregel in de kolom Command, in een terminalvenster.

Om een “boom” te zien van processen die zijn gestart of gespawned door andere processen, drukt u op V.

Processen voor een enkele gebruiker bekijken

Druk op “u” om de processen voor een enkele gebruiker te bekijken. U wordt gevraagd om de naam of UID.

Gebruikersprompt in een terminalvenster.

Advertentie

Type de naam of de UID van de persoon die je wilt monitoren. We typen “dave” en drukken op “Enter”. Nu zijn de enige processen in het taakgebied van de gebruiker dave.

taken weergeven voor een enkele gebruiker dave, in een terminalvenster.

Alleen actieve taken zien

Druk op I om alleen actieve taken te zien.

Top toont alleen actieve taken, in een terminalvenster.

Taken die sinds de laatste update geen CPU hebben verbruikt, worden niet getoond.

Instellen hoeveel processen worden weergegeven

Druk op “n” om de weergave tot een bepaald aantal regels te beperken, ongeacht of de taken actief zijn. U wordt gevraagd om het aantal weer te geven processen.

Top vraagt om het aantal weer te geven regels, in een terminalvenster.

We hebben 10 getypt en op Enter gedrukt, dus er verschijnen 10 processen in het taakgebied.

top weergave van tien processen in het taakgebied, in een terminalvenster.

Een proces hernoemen

U kunt op “r” drukken om de mooie waarde (prioriteit) voor een proces te wijzigen. U wordt gevraagd om de proces-ID. Druk gewoon op Enter om de proces-ID van de taak bovenin het procesvenster te gebruiken. Wij typen 7800, wat toevallig het proces-ID is van een instantie van Firefox.

prompt om het proces-ID van een proces, in een terminalvenster.

Advertentie

Nadat je op Enter hebt gedrukt, wordt je gevraagd om de nieuwe nice value die op het proces moet worden toegepast. We typen 15, en drukken vervolgens op Enter.

top het instellen van een proces op een nice-waarde van 15, in een terminalvenster.

De nieuwe nice-waarde wordt onmiddellijk op het proces toegepast.

GeRELATEERD: Hoe stelt u procesprioriteiten in met nice en renice op Linux

Een proces doden

Druk op “k” om een proces te doden. U wordt dan gevraagd om het proces-ID dat u wilt doden. In feite kun je elk signaal naar het proces sturen. We gaan proces 7879 doden, dat niet meer reageert.

Top vraagt om een proces-id, in een terminalvenster.

Advertentie

Je krijgt de kans om het signaal in te typen dat je wilt verzenden. Je kunt het specificeren met een naam of een nummer. Als je gewoon op Enter drukt, verzendt top het SIGTERM (kill)-signaal.

top vraagt om een signaal te verzenden, in een terminalvenster.

Zodra je op Enter drukt, wordt het signaal naar het proces verzonden.

GeRELATEERD: Hoe processen te doden vanuit de Linux Terminal

Aanpassen van de weergave

U kunt ook de kleuren en kolommen aanpassen die worden weergegeven. We gaan de kleur veranderen die wordt gebruikt voor prompts, waarvan de standaard rood is.

top toont een lichtrode prompt, in een terminalvenster.

Druk op hoofdletter Z om naar de pagina met kleurinstellingen te gaan. Het bovenste deel van het scherm toont de kleuren die door de verschillende weergave-elementen worden gebruikt. Om aan te geven welk weergave-element u wilt wijzigen, drukt u op een van de volgende toetsen, die hoofdlettergevoelig zijn:

  • S: Samenvatting gegevensgebied.
  • M: Berichten en prompts.
  • H: Kolomkopjes.
  • T: Taakinformatie in de proceslijst.

We drukken op M om de prompts te wijzigen.

Top kleur instellingspagina met optie M geselecteerd, in een terminalvenster.

Advertentie

Om een kleur te kiezen, drukt u op een van de volgende nummers:

  • 0: Zwart.
  • 1: Rood.
  • 2: Groen.
  • 3: Geel.
  • 4: Blauw.
  • 5: Magenta.
  • 6: Cyaan.
  • 7: Wit.

We drukken op 6 om cyaan te gebruiken.

Top kleurinstellingenvenster met kleur 6 geselecteerd, in een terminalvenster.

Druk op Enter om uw instellingen op te slaan. Invoerprompts worden nu weergegeven in de kleur die u hebt geselecteerd.

top met een cyaan prompt, in een terminalvenster.

We kunnen ook de kolommen wijzigen die worden weergegeven in het scherm Fields Management. Druk op F om het scherm Fields Management te openen.

top met het scherm Fields Management, in een terminalvenster.

Velden die worden weergegeven, hebben een sterretje (* ) naast zich en zijn vetgedrukt gemarkeerd. Druk op de pijlen Omhoog en Omlaag om de markering door de lijst met velden te verplaatsen.

Advertentie

Als u de markering onderaan een kolom verplaatst, verschijnt deze bovenaan de volgende (tenzij u onderaan de laatste kolom staat).

Wij verplaatsen de cursor naar de COMMAND en drukken op “d” om het sterretje te verwijderen (*). Vervolgens gingen we naar de UID en drukten op “d” om een sterretje naast die UID te plaatsen. Dit betekent dat de COMMAND-kolom niet wordt weergegeven, maar de UID-kolom wel.

top weergave van het veldbeheerscherm met de UID-kolom geselecteerd in een terminalvenster.

Terwijl de cursor op de UID-kolom staat, drukken we op “s” om de proceslijst te sorteren op de UID-kolom.

tops weergave van het veldbeheerscherm met de UID-kolom ingesteld als sorteerkolom in een terminalvenster.

Druk op Enter om uw instellingen op te slaan en druk vervolgens op “q” om het scherm Veldbeheer te verlaten.

top met de UID-kolom weergegeven, en ingesteld als sorteerkolom in een terminalvenster.

Advertentie

De UID-kolom heeft de COMMAND-kolom vervangen, en de proceslijst is hierop gesorteerd.

Alternatieve weergavemodus

Dit werkt het beste in volledig-schermmodus. Druk op A om vier gebieden in de proceslijst weer te geven, en druk vervolgens op “a” om van gebied naar gebied te gaan.

top met de alternatieve weergave geactiveerd in een terminalvenster.

Elk gebied heeft een andere verzameling kolommen, maar elk is ook aanpasbaar via het scherm Fields Management. Dit geeft u de mogelijkheid om een schermvullende, aangepaste weergave te hebben met verschillende informatie in elk gebied, en de mogelijkheid om elk gebied op een andere kolom te sorteren.

Andere toetsaanslagen

Het volgende zijn enkele andere toetsen die u nuttig zou kunnen vinden in top:

  • W: Sla uw instellingen en aanpassingen op, zodat ze nog steeds van kracht zijn wanneer u top de volgende keer opstart.
  • d: Stel een nieuwe beeldschermverversingsfrequentie in.
  • Spatie: Forceer top om zijn scherm nu te verversen.

Top Banana

Zoals we hebben gezien, heeft top nogal een repertoire. Andere programma’s, zoals htop, zijn erdoor geïnspireerd, maar ze hebben elk hun eigen kijk op de dingen.

Advertentie

Hoe dan ook, top is overal geïnstalleerd. Wanneer je naar bedrijven gaat om netwerken of servers te bekijken, krijg je vaak te horen dat er absoluut niets kan worden veranderd op de live servers. De klant maakt de regels, dus je moet gebruiken wat er al geïnstalleerd is.

Ook al geef je de voorkeur aan een andere monitoring tool, je moet top leren kennen. Vroeg of laat kom je waarschijnlijk in een situatie terecht waarin het alles is waar je toegang tot hebt.

Dave McKay
Dave McKay gebruikte voor het eerst computers toen ponsband in zwang was, en hij programmeert sindsdien. Na meer dan 30 jaar in de IT-industrie, is hij nu full-time technologiejournalist. Tijdens zijn loopbaan heeft hij gewerkt als freelance programmeur, manager van een internationaal software ontwikkelingsteam, een IT services project manager, en, meest recent, als een Data Protection Officer. Dave is een Linux evangelist en voorstander van open source.Read Full Bio ”

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *