Load-monitoring is een van de meest kritieke taken, vooral als u te maken hebt met servers. Het geeft u niet alleen een idee van de manier waarop de bronnen van uw systeem worden gebruikt, maar helpt u ook om prestatieproblemen te diagnosticeren. In dit artikel zullen we bespreken hoe load-monitoring in Linux kan worden uitgevoerd met behulp van de tool op de top.

Opmerking : alle voorbeelden die in het artikel worden gebruikt, worden getest op Ubuntu 14.04.

Boven

Vanaf de man-pagina is de opdrachtregel-tool atop een interactieve monitor om de belasting op een Linux-systeem te bekijken. Het laat zien hoe de hardware van uw systeem, inclusief CPU, geheugen, schijf en netwerk bezet zijn, allemaal vanuit het oogpunt van prestaties. Niet alleen dit, maar het laat ook zien welke processen verantwoordelijk zijn voor de aangegeven belasting.

Opmerking : schijfbelasting wordt getoond als per proces "opslag accounting" actief is in de kernel of als de kernel patch "cnt" is geïnstalleerd. Evenzo wordt netwerkbelasting alleen per proces getoond als de kernel-patch "cnt" is geïnstalleerd.

Download en installeer

Gebruikers van op Debian gebaseerde systemen (zoals Mint en Ubuntu) kunnen de tool downloaden en installeren met behulp van de volgende opdracht:

 sudo apt-get installeren bovenop 

Degenen die zich op andere Linux-distributies bevinden, kunnen hun respectieve pakketbeheertools gebruiken. Bijvoorbeeld, yum in het geval van Red Hat. U kunt de tool ook downloaden van de officiële website.

Boven op uitvoer

Na de installatie kunt u het hulpprogramma uitvoeren door de volgende opdracht uit te voeren vanaf de opdrachtregel:

 sudo bovenop 

Hier is de voorbeelduitvoer:

Zoals u ziet, is dat een heleboel informatie die grofweg in twee delen is verdeeld: systeemniveau en procesniveau. De eerste bestaat uit de volgende uitvoerlijnen:

PRC : deze regel bevat de totale CPU-tijd die is verbruikt in de systeemmodus ('sys') en in de gebruikersmodus ('gebruiker'), het totale aantal processen dat momenteel aanwezig is ('#proc'), het totale aantal threads dat aanwezig is op dit moment in state 'running' ('#trun'), 'sleeping interruptible' ('#tslpi') en 'sleeping un-interruptible' ('#tslpu'), het aantal zombie-processen ('#zombie'), het aantal kloon-systeemaanroepen ('klonen') en het aantal processen dat tijdens het interval is beëindigd ('#exit', wat '?' aangeeft als procesadministratie niet wordt gebruikt).

CPU : deze regel bevat het percentage CPU-tijd doorgebracht in de kernelmodus door alle actieve processen ('sys'), in gebruikersmodus ('gebruiker') voor alle actieve processen (inclusief processen die worden uitgevoerd met een mooie waarde groter dan nul), voor interrupt handling ('irq') inclusief softirq, evenals het percentage ongebruikte cpu-tijd terwijl er geen processen wachtten op disk-I / O ('idle') en terwijl ten minste één proces wachtte op disk-I / O ( 'Wacht'). In het geval van een multiprocessorsysteem wordt een extra regel weergegeven voor elke individuele processor (met 'cpu' in kleine letters), gesorteerd op activiteit.

CPL : deze regel bevat informatie over CPU-belasting - het aantal threads dat beschikbaar is om te worden uitgevoerd op een CPU (dwz een deel van de runqueue) of die wachten op schijf-I / O, het aantal context-switches ('csw'), de aantal serviced interrupts ('intr') en het aantal beschikbare CPU's.

MEM : deze regel bevat informatie over het geheugengebruik - de totale hoeveelheid fysiek geheugen ('tot'), de hoeveelheid geheugen die momenteel vrij is ('gratis'), de hoeveelheid geheugen die wordt gebruikt als pagina-cache ('cache') ), de hoeveelheid geheugen in de paginacache die naar de schijf moet worden doorgespoeld ('dirty'), de hoeveelheid geheugen die wordt gebruikt voor de metadata van het bestandssysteem ('buff') en de hoeveelheid geheugen die wordt gebruikt voor kernel malloc's ('plaat ').

SWP : deze regel bevat de totale hoeveelheid swapspace op schijf ('tot') en de hoeveelheid vrije swapruimte ('gratis'), de toegewijde virtuele geheugenruimte ('vmcom') en de maximale limiet van de toegewezen ruimte (vmlim)

DSK : deze regel bevat informatie met betrekking tot schijfgebruik - het deel van de tijd dat het apparaat bezig was met het afhandelen van verzoeken ('bezet'), het aantal uitgegeven leesverzoeken ('lees'), het aantal uitgegeven schrijfverzoeken ('write') ), het aantal KiBytes per lezen ('KiB / r'), het aantal KiBytes per write ('KiB / w'), het aantal MiBytes per seconde doorvoer voor reads ('MBr / s'), het aantal MiBytes per seconde doorvoer voor schrijven ('MBw / s'), de gemiddelde wachtrijgdiepte ('avq') en het gemiddelde aantal milliseconden dat nodig is voor een verzoek ('avio') voor zoeken, latency en gegevensoverdracht.

NET : dit is de informatie met betrekking tot netwerkgebruik (TCP / IP): er wordt één regel weergegeven voor de activiteit van de transportlaag (TCP en UDP), één regel voor de IP-laag en één regel per actieve interface.

De systeemniveau-informatie wordt gevolgd door procesniveau-informatie, die zoals de naam suggereert gedetailleerde informatie heeft met betrekking tot de processen waarvan het gebruik van de bron tijdens het laatste interval is veranderd (een standaardinterval is 10 seconden).

Een belangrijk punt dat het vermelden waard is, is dat op de voorgrond kleuren (rood, cyaan en meer) worden gebruikt om de kriticiteit van het bronnengebruik op systeemniveau aan te geven. Wanneer een resource bijvoorbeeld zijn kritieke bezettingspercentage heeft overschreden, is de gehele schermregel ROOD gekleurd.

Opmerking : ga door de manpagina van de opdracht voor meer details over de uitvoer van de opdracht.

Interactieve commando's

U kunt de uitvoer van het commando atop vanaf uw toetsenbord regelen. Druk bijvoorbeeld op m om geheugengerelateerde uitvoer weer te geven, d voor schijfgerelateerde uitvoer, n voor netwerkgerelateerde uitvoer, v voor verschillende proceskenmerken, c voor de opdrachtregel van het proces, enzovoort.

Hier is de schermopname van de procesniveau-informatie geproduceerd door het commando atop toen c werd ingedrukt:

Zoals u kunt zien, wordt de opdrachtregel van het proces weergegeven in de uitvoer.

Conclusie

Op de top is een zeer nuttige load monitoring-opdracht in Linux die niet alleen een bak vol informatie over systeembronnen biedt, maar ook verschillende manieren om de uitvoer aan te passen en te regelen. We raden u aan om de manpagina van het commando door te nemen om er meer over te leren.