14 Opdrachtregelprogramma’s om het CPU-gebruik in Linux te controleren

CPU-prestaties zijn een aspect van het meten van de prestaties van een systeem. Het monitoren van de prestaties van de CPU is essentieel om processen binnen elk systeem te debuggen, systeembronnen te beheren, systeembeslissingen te nemen en systemen in realtime te evalueren en te onderzoeken.

Er zijn veel tools beschikbaar om te monitoren en weer te geven CPU-prestaties. Besturingssystemen hebben ingebouwde systeemaanroepen waarop deze tools vertrouwen om de prestatiewaarden te extraheren.

In deze tutorial zullen we de beste tool voor het monitoren van CPU-gebruik en het gebruik ervan in Linux-distributies onderzoeken.

1) Top

Het bovenste commando toont real-time weergave van prestatiegerelateerde gegevens van alle lopende processen in een systeem. Standaard werkt het bovenste commando de gegevens elke 5 seconden bij. Typ “top” in de terminal om de statistische gegevens te bekijken die betrekking hebben op de prestaties van een systeem.

 # top

Om de uitvoer van het top-commando te wijzigen, drukt u op:

“P” om te sorteren op CPU-gebruik.

“I” om de inactieve processen van het scherm te verwijderen en terug te keren, druk nogmaals op “I”.

“M” om de gegevens te sorteren op geheugengebruik.

“S” om te sorteren op hoelang de processen actief zijn, type.

“P” om te sorteren op CPU-gebruik.

“U” om processen te bekijken die eigendom zijn van een specifieke gebruiker.

“K” om processen te doden.

“R” om processen te hernoemen.

2) Iostat

Het iostat-commando geeft een overzicht van het CPU-gebruik, het apparaatgebruik en het gebruik van het netwerkbestandssysteem. Dit hulpprogramma geeft het gemiddelde CPU-gebruik van het systeem weer sinds de laatste keer opnieuw opstarten. Als u de volgende opdracht uitvoert zonder enige optie, worden alle drie de rapporten weergegeven.

 # iostat

Om het individuele rapport weer te geven, gebruikt u de -c, -d en -h schakelaar voor CPU-gebruik , apparaatgebruik en netwerkbestandssysteemgebruik. De volgende opdracht verdeelt het CPU-gebruik in gebruikersprocessen, systeemprocessen, I / O-wachttijd en inactieve tijd.

 # iostat -c

De volgende opdracht geeft uitgebreide statistieken weer ( -x), het aantal keren (-t) dat elk rapport moet worden weergegeven voor CPU-gebruik (-c).

 # iostat -xtc 5 2

3) Vmstat

Het vmstat-commando geeft statistieken weer over systeemprocessen, geheugen, swap, I / O en de CPU-prestaties. Voor het weergeven van statistieken worden de gegevens verzameld vanaf de laatste keer dat de opdracht werd uitgevoerd tot heden. In het geval dat de opdracht nooit wordt uitgevoerd, zijn de gegevens van de laatste herstart tot de huidige tijd.

Op systemen met meerdere CPU’s, berekent vmstat het gemiddelde van het aantal CPU’s in de uitvoer. Het vmstat-commando werkt zijn uitvoer bij zoals het top-commando.

Het volgende commando zal zijn rapport elke 5 seconden bijwerken totdat er een onderbreking is.

 # vmstat 5

De volgende opdracht geeft de gegevens weer die elke 5 seconden worden bijgewerkt en de waarden worden elke seconde opnieuw gemeten en gerapporteerd.

 # vmstat 1 5

De eerste regel drukt de gemiddelde waarden af sinds de laatste keer dat de computer opnieuw werd opgestart. De rest van de regels zullen hun respectievelijke huidige waarden weergeven. Een normale gebruiker kan het vmstat-commando uitvoeren.

4) Mpstat

Mpstat maakt deel uit van het sysstat-pakket in Linux. Het mpstat-commando schrijft naar de standaarduitvoer over activiteiten voor elke beschikbare processor, waarbij processor 0 de eerste is. Als er geen activiteit is geselecteerd, is het standaardrapport het CPU-gebruiksrapport.

mpstat zonder enige optie geeft de globale gemiddelde activiteiten van alle CPU’s weer.

 # mpstat

mpstat met -p optie en “ALL” zal statistieken over alle CPU’s een voor een weergeven, beginnend bij 0.

 # mpstat -P ALL

Het volgende commando zal geef 4 keer het gemiddelde CPU-gebruik weer, elk na 2 seconden.

 # mpstat -P ALL 2 4

5) Sar

De sar is een prestatiebewakingsprogramma voor verzamelen, bekijken en opnemen van prestatiegegevens en kunnen aangeven wat een systeem de hele tijd doet. Het Sar-commando kan een rapport genereren en deze naar de systeembeheerder e-mailen. De statistieken die door sar worden gerapporteerd, omvatten onder meer I / O-overdrachtssnelheden, paging-activiteit, procesgerelateerde activiteiten, interrupts, netwerkactiviteit, gebruik van geheugen en swapruimte, CPU-gebruik, kernelactiviteiten en TTY-statistieken. Voer sar uit zonder enige optie en controleer de uitvoer. De standaard uitvoerlijststatistieken voor elke 10 minuten en een definitief gemiddelde.

 # sar

Geef CPU-statistieken 3 keer weer met een interval van 2 seconden.

 # sar 2 3

De volgende opdracht geeft het cumulatieve real-time CPU-gebruik van alle CPU’s weer voor elke 2 seconden in totaal 3 keer.

 # sar -u 2 3

De “-P ALL” optie geeft statistieken weer voor ALLE individuele Cores. Als uw systeem 4 cores heeft, bevat de “CPU-kolom” het nummer 0, 1, 2, 3, wat de corresponderende CPU-kernnummers aangeeft.De optie “2 3” geeft de statistieken elke 2 seconden 3 keer weer.

 # sar -P ALL 2 3

De optie “-P 2” geeft elke 2 seconden statistieken weer voor de derde kern voor 3 keer.

 # sar -P 2 2 3

6) CoreFreq

CoreFreq is een CPU-prestatiebewakingssoftware ontworpen voor 64-bits processors met Intel-architecturen Atom, Core2, Nehalem, SandyBridge en superieur, AMD Family. De CoreFreq biedt een raamwerk voor het ophalen van CPU-gegevens met een hoge mate van precisie. De kernelmodule, daemon en userland command-line interface (CLI) zijn de drie delen van Corefreq. De kernelmodule heeft volledige toegang tot de host. Het is zijn verantwoordelijkheid om de gegevens op laag niveau te verzamelen. De userland-daemon verzamelt de gegevens. Je zou root-gebruiker moeten zijn om de daemon te draaien. Ten slotte wordt CoreFreq geleverd met een terminalinterface om gegevens te rapporteren in een mooi door mensen leesbaar formaat. Die CLI-tool is een gewoon proces en kan door de eindgebruiker worden gebruikt.

Voorwaarde

i) CoreFreq gebruikt de low-level-teller en daarom moet u eerst de NMI-watchdog uitschakelen via / etc / default / grub. Bewerk / etc / default / grub en voeg het “nmi_watchdog = 0” kernel-opdrachtregelargument toe en voer vervolgens update-grub uit.

 # vi /etc/default/grub
 .................... .................... GRUB_CMDLINE_LINUX="nmi_watchdog=0" .................... ....................
 # update-grub && reboot

ii) Geen virtualisatie. VM’s bieden geen toegang tot de registers die de CoreFreq-driver gebruikt.

Installeer CoreFreq

Installeer de kernelmodule met insmod

 # sudo insmod corefreqk.ko

Maak een lijst van de CoreFreq-module met lsmod

 # lsmod | grep corefreq corefreqk 49152 0

De uitvoer van het dmesg-commando laat zien dat CoreFreq is herkend door de processor.

 # sudo dmesg | grep CoreFreq CoreFreq: Processor Architecture CPU 

Start de CoreFreq daemon

 # sudo ./corefreqd -i &

Start nu de corefreq client als gebruiker.

 # ./corefreq-cli

7) Htop

Htop is een procesviewer en een tekstmodustoepassing voor systeembewaking in realtime zoals top. Het toont een volledige lijst van de processen die worden uitgevoerd en is gemakkelijk te gebruiken. Het is gebaseerd op ncurses voor het bekijken van de processen in een GUI-achtige omgeving die in de terminal wordt uitgevoerd. Htop toont het gebruik per CPU samen met het geheugen en het swapgebruik met een significante tekstgrafiek afgedrukt bovenaan. Htop is erg handig in gebruik en gemakkelijk te begrijpen. Zodra u HTOP begint te gebruiken, y u keert misschien niet terug naar TOP.

Installeer htop met het volgende commando in de terminal

 # sudo apt-get install htop

Voer htop uit met het volgende commando.

 # htop

8) Nmon

nmon (Nigel’s performance Monitor voor Linux & AIX) is ontwikkeld door IBM-medewerker Nigel Griffiths. Deze tool wordt gebruikt om systeembronnen te controleren, zoals CPU, geheugen, netwerk, schijven, bestandssystemen, NFS, topprocessen in de terminal. NMON ondersteunt verschillende architecturen zoals POWER, x86, x86_64, Mainframe en ARM (Raspberry Pi). Deze tool helpt de systeembeheerder bij het afstemmen en benchmarken van prestatie-informatie om problemen met de CPU / systeemprestaties op te lossen als er problemen zijn. Voor real-time monitoring gebruikt het de vloekenbibliotheek voor een lage CPU-impact en geeft het statistieken weer op het scherm en wordt het elke twee seconden bijgewerkt. nmon verbruikt minder CPU-geheugen in vergelijking met andere tools omdat het curses-bibliotheek gebruikt.

Installatie

 # sudo apt-get install nmon (Ubuntu) # sudo yum install nmon (CentOS)

CentOS-gebruikers moeten installeren / inschakelen EPEL Repository om nmon te installeren.

Typ nmon in de terminal en druk op enter, nmon zal een welkomstscherm tonen met alle opties om het verder te gebruiken. Als u het CPU-gebruik wilt weergeven, drukt u op c en om de statistieken van de CPU-gebruik-widgets te verbergen, drukt u nogmaals op “c”.

9) Glances

Glances is een platformonafhankelijke op vloeken gebaseerde monitoringtool geschreven in Python die de psutil-bibliotheek gebruikt om gegevens van het systeem op te halen. Glance-monitor CPU, gemiddelde belasting, geheugen, netwerkinterfaces, schijf-I / O, processen en gebruik van bestandssysteemruimten.

Installeer blikken in uw systeem met het volgende commando.

In Ubuntu :

 # sudo apt-get install glances

In Centos:

 # sudo yum install glances

Je kunt Glances in 3 modi uitvoeren:

1. Standalone

Als u uw lokale machine wilt monitoren (Standalone), voert u gewoon-

 # glances

2 uit. Client / Server

Als u een machine op afstand wilt monitoren, voer dan het volgende uit op de server.

 # glances -s

en vervolgens vanaf de client , voer het volgende commando uit.

 # glances -c @server

waarbij @server het IP-adres of de hostnaam van de server is.

3. Webserver

Voer de blikken uit in webservermodus door het volgende commando in de terminal uit te voeren.

 # glances -w Glances web server started on http://0.0.0.0:61208/

Om de vernieuwingsfrequentie van de pagina, voeg gewoon de punt in seconden toe aan het einde van de URL. Als u de pagina bijvoorbeeld elke 30 seconden wilt vernieuwen, voegt u 10 toe aan de URL van de glances-server vanuit de browser.

 http://@server:61208/30

10) Cpustat

Cpustat is als een chique soort top die verschillende dingen doet. De meeste prestatietools hebben een gemiddeld CPU-gebruik over een paar seconden of zelfs een minuut. Dit resulteert in een fantasie van overcapaciteit vanwege een abrupte toename van het gebruik van hulpbronnen die wordt gecombineerd met minder drukke periodes. Aan de andere kant neemt cpustat monsters met een hogere frequentie van elk proces en vat deze monsters op een lagere frequentie samen. Het kan bijvoorbeeld een proces meten in elke 200 ms en de voorbeelden in elke 5 seconden samenvatten, inclusief min / gemiddelde / max waarden voor sommige statistieken.

Installeer Cpustat

Cpustat wordt geschreven in Go-taal. Daarom heb je GO nodig in je systeem. Als het er niet is, installeer het dan met de volgende commando’s in de terminal.

In Ubuntu

 # sudo add-apt-repository ppa:longsleep/golang-backports # sudo apt-get update # sudo apt-get install golang-go

In CentOS

 # yum install golang

Zodra Golang op uw systeem is geïnstalleerd, maakt u een directory voor Cpustat en maakt u deze directory beschikbaar voor de GOPATH.

 # mkdir cpustat # export GOPATH=$HOME/cpustat

Installeer Cpustat en controleer of de mappen zijn gekopieerd naar de map cpustat.

 # go get github.com/uber-common/cpustat # cd cpustat && ls

Voeg bin-map toe aan de PATH-omgevingsvariabele. Je kunt ook de volgende regel toevoegen aan ~ / .bashrc of / etc / profile, afhankelijk van wat je gebruikt.

 # export PATH=$PATH:/root/cpustat/bin

Er zijn twee manieren om dit weer te geven gegevens. Ofwel een pure tekstlijst van het samenvattingsinterval of een kleurrijk scrollend dashboard van elk monster. Om gegevens weer te geven in de fraaie terminalmodus, voert u het volgende commando uit in de terminal.

 # cpustat -t

Gebruik het volgende commando om in pure tekstmodus te werken. In tekstmodus zijn er weinig systeembrede samenvattingsstatistieken afkomstig van / proc / stat.

 # cpustat

De volgende opdracht neemt een steekproef van alle processen in elke 500 ms en vat deze gegevens samen na 10 samples, wat elke 5 seconden is.

 # cpustat -s 500 -s 10 -n 20

Gebruik het volgende commando om processen te meten die eigendom zijn van gebruikersroot of gebruikers ubuntu. De algemene systeemstatistieken worden nog steeds gemeten.

 # cpustat -u root, ubuntu

Meet alleen processen van “apache” of “mysql”. De optie -p van cpustat neemt een lijst met proces-id’s die worden geretourneerd door pgrep. pgrep wordt gebruikt om de proces-id’s op te halen (-d optie).

 # cpustat -p $(pgrep -d, apache2\|mysqld)

Gebruik het volgende commando om een geheugenprofiel in een bestand te schrijven.

 # cpustat -memprofile test.txt

11) perf

Perf kan CPU-prestatietellers, traceerpunten, kprobes en uprobes meten die in de Linux-kernel zijn opgenomen, onder tools / perf. perf begon als een hulpmiddel voor het gebruik van het subsysteem prestatiemeteritems in Linux en heeft verschillende verbeteringen ondergaan om traceringsmogelijkheden toe te voegen. De perf-tools zijn geïntegreerd in de Linux-kernel sinds versie 2.6 en zijn gebaseerd op het subsysteem perf events. De perf-profiler gebruikt hardwaretellers om de toepassing te profileren. Het resultaat van deze profiler is expliciet en snel. Het hulpprogramma perf kan worden gevonden in het linux-tools-pakket.

Measure entire system for 10 seconds using perf.
 # perf stat -a -- sleep 10

Als u geïnteresseerd bent in het vinden van CPU-prestaties voor een bepaald” commando “zoals cp. De volgende perf-opdracht zal cp profileren terwijl het de volledige map Documenten naar een nieuwe locatie (Docs) kopieert.

 # perf stat cp -r Documents/ Docs

Als u CPU-tellerstatistieken wilt vinden voor een gespecificeerde PID en gebruik vervolgens de volgende opdracht totdat CTRL + C wordt ingedrukt.

 # perf stat -p 2087

Vind de basis CPU-statistieken, systeembreed, gedurende 10 seconden met behulp van de volgende perf opdracht. U kunt ook een van de opties onder de -e-optie weglaten om specifieker te zijn.

 # perf stat -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10

Verzamel 5 seconden lang een voorbeeld van de gebruikersinstructies op de CPU en daarna gebruik het prestatie-rapport om het rapport te bekijken.

 # perf record -e cycles:u -a -- sleep 5 # perf report

Verzamel voorbeelden van CPU-stack-traces, eens per 10.000 niveau 1-gegevenscache-missers, gedurende 5 seconden en gebruik vervolgens het prestatie-rapport om het rapport te bekijken.

 # perf record -e L1-dcache-load-misses -c 10000 -ag -- sleep 5 # perf report

12) tiptop

Tiptop leest hardwareprestatiemeteritems en geeft statistieken weer over draaiende Linux-processen, zoals IPC , of cache mist. Het biedt een dynamisch real-time overzicht van de taken die in het systeem worden uitgevoerd. Tiptop lijkt erg op top, maar de weergegeven informatie is afkomstig van hardwaretellers.

Het heeft twee bedrijfsmodi, live-modus en batch-modus. In beide modi wordt het systeem periodiek opgevraagd naar de waarden van hardwaretellers en worden verschillende verhoudingen afgedrukt voor elke taak.

13) ps-commando

We kunnen ps-commando gebruiken om te zoeken cpu-gebruik voor elk proces of gebruikers. Gegeven enkele voorbeelden om te begrijpen

Om de hoogste CPU weer te geven & Geheugengebruik door processen die door root worden uitgevoerd.

Voer het volgende commando uit om het CPU-gebruik voor het specifieke commando weer te geven:

Om processen voor alle gebruikers te tonen en niet gekoppeld aan een terminal in volledig formaat met een sortering

14) dstat commando

dstat commando is een veelzijdig hulpmiddel voor het genereren van systeembronnenstatistieken en het zou ook cpu-statistieken tonen. U moet het installeren om het te kunnen gebruiken.

Op Centos

# yum install -y dstat

Op Ubuntu

# apt-get install dstat

Om programma te controleren dat de meeste CPU gebruikt en de meeste geheugen verbruikt.

# dstat -c --top-cpu -dn --top-mem

Conclusie

In deze tutorial hebben we enkele tools voor het monitoren van CPU-prestaties onderzocht, samen met hun gebruik. Zorg ervoor dat u de man-pagina’s voor elk van hen leest, aangezien het ook het gebruik in detail documenteert. Onthoud dat het gebruik van deze tools ook een CPU-schijf kost. Top neemt bijvoorbeeld 3% -4% van de CPU in beslag, terwijl blikken 15% tot 20% van de CPU in beslag nemen. Dus als u een van deze gebruikt, moet u ook met dit aspect rekening houden. Kortom, u zult in staat zijn om erachter te komen welk proces meer CPU-tijd in beslag neemt, of er voldoende geheugen vrij is, of processen vastlopen tijdens het wachten op I / O, namelijk. schijf- of netwerktoegang om het lezen / schrijven en nog veel meer te voltooien door een combinatie van enkele ervan te gebruiken.

Lees ook:

  • Hoe de Linux-prestaties te controleren met Sar Command
  • Installeer htop 2.0.2 en gebruik de opdrachtregel onder Linux

Write a Comment

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