Linux CPU-gebruik - Hoe Linux CPU-gebruik te controleren

Gepubliceerd 18 maart 2024

CPU-gebruik is een cruciale metriek voor het meten van systeemprestaties en het identificeren van potentiële knelpunten in Linux-systemen. Dit artikel verkent het concept van CPU-gebruik, factoren die bijdragen aan hoog CPU-gebruik, en verschillende command-line tools en grafische hulpprogramma's voor het monitoren en oplossen van problemen met CPU-gebruik in Linux-omgevingen.

Linux CPU-gebruik Begrijpen

Wat is CPU-gebruik?

CPU-gebruik verwijst naar de hoeveelheid tijd die de processor besteedt aan het verwerken van instructies en het uitvoeren van taken. Het is een belangrijke metriek voor het meten van systeemprestaties en het vinden van potentiële knelpunten. In Linux wordt CPU-tijd aan processen toegewezen op basis van hun prioriteiten en de beschikbare systeembronnen. Elk proces krijgt een deel van de verwerkingskracht van de CPU, en het besturingssysteem beheert de planning en uitvoering van deze processen.

Factoren die Bijdragen aan Hoog CPU-gebruik

Hoog CPU-gebruik kan worden veroorzaakt door verschillende factoren, wat invloed heeft op systeemprestaties en responsiviteit. Enkele veelvoorkomende oorzaken zijn:
  1. Intensieve processen: CPU-intensieve taken, zoals video-encoding, wetenschappelijke simulaties, of complexe berekeningen, kunnen een groot deel van de bronnen van de CPU gebruiken, wat leidt tot hoog gebruik.

  2. Onvoldoende bronnen: Wanneer een systeem niet genoeg processorcores of geheugen heeft om de werkbelasting efficiënt te verwerken, kunnen processen concurreren om beperkte bronnen, wat resulteert in hoog CPU-gebruik.

  3. Achtergrondtaken: Services, daemons en achtergrondprocessen die op het systeem draaien kunnen bijdragen aan hoog gemiddeld CPU-gebruik, zelfs als ze niet actief door de gebruiker worden gebruikt.

  4. Inefficiënte applicaties: Slecht geoptimaliseerde of buggy applicaties kunnen te veel CPU-cycli gebruiken, wat hoog gebruik veroorzaakt en invloed heeft op de algehele systeemprestaties.

Het vinden en oplossen van de hoofdoorzaken van hoog CPU-gebruik is belangrijk voor het behouden van optimale systeemprestaties en het garanderen van een soepele gebruikerservaring.

Linux CPU Load Averages Begrijpen

CPU load averages bieden een maat voor de werkbelasting van het systeem over een bepaalde periode. In Linux worden load averages weergegeven door drie getallen, meestal getoond als "1-minuut, 5-minuten, 15-minuten" gemiddelden. Deze getallen geven het gemiddelde aantal processen aan dat zich in een uitvoerbare of niet-onderbreekbare toestand bevindt gedurende de respectievelijke tijdsintervallen.

Bijvoorbeeld, een load average van "1.0" betekent dat gemiddeld één proces klaar was om te draaien of wachtte op schijf-I/O tijdens de gespecificeerde tijdsperiode. Een load average hoger dan het aantal CPU-cores suggereert dat processen concurreren om CPU-tijd, en het systeem mogelijk overbelast is.

Het is belangrijk op te merken dat load averages alleen geen compleet beeld geven van CPU-gebruik. Ze zijn een maat voor systeembelasting, wat CPU-gebruik, I/O-wachttijd en andere factoren omvat. Om een nauwkeuriger begrip van CPU-gebruik te krijgen, is het aan te raden om tools te gebruiken die gedetailleerde CPU-gebruiksstatistieken bieden, zoals top, htop, of mpstat.

Linux CPU-gebruik Controleren met Command-Line Tools

Het "top" Commando Gebruiken

Het "top" commando is een nuttig hulpmiddel voor het controleren van systeembronnen in real-time, inclusief processorgebruik. Het toont een dynamisch overzicht van de lopende processen en hun effect op het systeem. Om het "top" commando te gebruiken, open een terminal en typ `top`.

De uitvoer van het "top" commando toont verschillende systeemstatistieken, met de huidige CPU-gebruiksinformatie in de rechterbovenhoek. Hier is een voorbeeld:

top - 10:00:00 up 2 days, 15:30,  1 user,  load average: 0.50, 0.75, 0.90
Tasks: 100 total,   2 running,  98 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10.0 us,  5.0 sy,  0.0 ni, 85.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7974.2 total,   4515.4 free,   1678.3 used,   1780.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   5921.1 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  1234 john      20   0 1500000 300000  25000 S  25.0   3.7   1:30.00 stress-ng
  5678 jane      20   0  800000 150000  10000 S  10.0   1.8   0:45.00 video_encode

In dit voorbeeld toont de "%Cpu(s)" regel de uitsplitsing van CPU-gebruik:

  • "us" (user): CPU-tijd besteed aan het uitvoeren van gebruikersprocessen
  • "sy" (system): CPU-tijd besteed aan het uitvoeren van systeemprocessen
  • "ni" (nice): CPU-tijd besteed aan het uitvoeren van niced (geprioriteerde) processen
  • "id" (idle): CPU-tijd besteed aan inactiviteit
  • "wa" (I/O wait): CPU-tijd besteed aan wachten op I/O-operaties

Het top commando toont ook een lijst van lopende processen gesorteerd op hun CPU-gebruik. Dit helpt identificeren welke processen de meeste CPU-bronnen gebruiken.

Het "htop" Commando Gebruiken

Het "htop" commando is een interactieve procesviewer en -beheerder die een gebruiksvriendelijke interface biedt voor het controleren van systeembronnen, inclusief CPU-gebruik. Om "htop" te gebruiken, moet u het mogelijk eerst installeren met behulp van de pakketbeheerder van uw distributie, bijvoorbeeld:
sudo apt install htop        # Voor Debian/Ubuntu
sudo dnf install htop        # Voor Fedora

Eenmaal geïnstalleerd, voer htop uit in de terminal om de interface te starten:

htop

De "htop" interface toont real-time systeemstatistieken, inclusief processorgebruik per core en een lijst van lopende processen. Het gebruikt kleurcodering en visuele grafieken om CPU-gebruik te tonen, waardoor het gemakkelijk is om de informatie te begrijpen.

Om CPU-gebruik te controleren met "htop":

  1. Bekijk de CPU-meter bovenaan de interface, die het algehele CPU-gebruik en het gebruik per core toont.
  2. Controleer de lijst van processen en hun individuele CPU-gebruikspercentage in de "%CPU" kolom.
  3. Gebruik de pijltjestoetsen om te navigeren en de "F1" toets om hulp en meer opties te openen.

Het "htop" commando biedt een gemakkelijke manier om CPU-gebruik te controleren en processen interactief te beheren.

CPU-gebruik Controleren met "mpstat"

Het "mpstat" commando is onderdeel van het [sysstat](https://github.com/sysstat/sysstat) pakket en laat u CPU-gebruik in detail controleren. Om "mpstat" te gebruiken, installeer het sysstat pakket als het nog niet beschikbaar is:
sudo apt install sysstat     # Voor Debian/Ubuntu
sudo dnf install sysstat     # Voor Fedora

Om CPU-gebruik te controleren met "mpstat", gebruik het volgende commando:

mpstat

Dit zal CPU-gebruiksstatistieken tonen, inclusief het percentage tijd besteed in gebruikersmodus, systeemmodus, inactief en I/O-wachttijd.

Om meer gedetailleerde informatie te krijgen, kunt u het interval en aantal instellen. Bijvoorbeeld, om CPU-gebruik elke 2 seconden te tonen voor in totaal 5 keer:

mpstat 2 5

Het mpstat commando laat u ook CPU-gebruik per core bekijken door de -P optie te gebruiken gevolgd door het corenummer of ALL voor alle cores:

mpstat -P ALL

Dit zal CPU-gebruiksstatistieken voor elke individuele core tonen, wat een meer gedetailleerd overzicht van CPU-gebruik biedt.

CPU-gebruik Controleren met "vmstat"

Het "vmstat" commando is een nuttig hulpmiddel dat informatie biedt over gemiddeld CPU-gebruik, geheugengebruik en processen. Om "vmstat" te gebruiken, voer simpelweg uit:
vmstat

Dit commando zal een samenvatting van systeembronnenebruik tonen, inclusief informatie over CPU-activiteit. De CPU-gebruiksinformatie wordt getoond in de laatste paar kolommen:

  • "us" (user): Percentage CPU-tijd besteed aan het uitvoeren van gebruikersprocessen
  • "sy" (system): Percentage CPU-tijd besteed aan het uitvoeren van systeemprocessen
  • "id" (idle): Percentage CPU-inactieve tijd
  • "wa" (I/O wait): Percentage CPU-tijd besteed aan wachten op I/O-operaties

Om real-time updates van CPU-gebruik te krijgen, kunt u het interval en aantal instellen. Bijvoorbeeld, om CPU-gebruik elke 2 seconden te tonen voor in totaal 5 keer:

vmstat 2 5

Het "vmstat" commando biedt een kort overzicht van systeembronnenebruik, inclusief CPU-gebruik, waardoor u snel de algehele systeemprestaties kunt controleren.

Het "sar" Commando Gebruiken voor Historische Analyse

Het "sar" commando (System Activity Reporter) is een nuttig hulpmiddel voor het verzamelen en analyseren van systeemprestatie-data, inclusief CPU-gebruik over tijd. Het is onderdeel van het sysstat pakket. Om "sar" te gebruiken, installeer het sysstat pakket als het nog niet beschikbaar is.

Om CPU-gebruik te controleren met "sar", gebruik het volgende commando:

sar -u

Dit zal CPU-gebruiksstatistieken tonen, inclusief het percentage tijd besteed in gebruikersmodus, systeemmodus, inactief en I/O-wachttijd.

Om CPU-gebruiksdata voor een specifiek tijdsinterval te bekijken, gebruik de volgende syntax:

sar -u -s <start_time> -e <end_time>

Vervang <start_time> en <end_time> met de gewenste start- en eindtijden in het formaat "HH:MM:SS".

Het sar commando laat u ook rapporten maken voor een specifieke tijdsperiode. Bijvoorbeeld, om een rapport van CPU-gebruik voor de afgelopen 24 uur te maken met intervallen van 1 uur:

sar -u -s 00:00:00 -e 23:59:59 -i 3600

Het gemaakte rapport biedt een historisch overzicht van CPU-gebruik, waardoor u trends en patronen over tijd kunt analyseren.

Het "sar" commando biedt veel opties voor het verzamelen en analyseren van systeemprestatie-data. Raadpleeg de sar man page voor meer geavanceerd gebruik en opties.

Grafische Tools voor het Monitoren van Linux CPU-prestaties

Glances: Een Systeemmonitoringtool

Glances is een command-line tool die een overzicht biedt van systeembronnen, inclusief processorgebruik, in een visueel aantrekkelijke interface. Het biedt real-time monitoring en toont belangrijke informatie in een compact en gemakkelijk te lezen formaat.

Om Glances op uw Linux-systeem te installeren, kunt u de pakketbeheerder voor uw distributie gebruiken. Bijvoorbeeld, op Debian of Ubuntu-gebaseerde systemen, voer uit:

sudo apt install glances

Op Fedora, CentOS, of RHEL-gebaseerde systemen, gebruik:

sudo dnf install glances

Zodra Glances is geïnstalleerd, kunt u het starten door het commando uit te voeren:

glances

De Glances interface zal openen en een real-time samenvatting bieden van verschillende systeembronnen, inclusief CPU-gebruik.

In de CPU-sectie van de Glances uitvoer, kunt u het algehele CPU-gebruikspercentage en een uitsplitsing van CPU-gebruik per core bekijken. Het CPU-gebruik wordt getoond door kleurgecodeerde balken, waardoor het gemakkelijk is om het gebruiksniveau te identificeren.

Glances biedt ook extra informatie, zoals het aantal lopende processen, systeem load averages, en top CPU-consumerende processen. Dit overzicht helpt u snel potentiële problemen of resource-intensieve taken te identificeren.

Glances biedt veel configuratieopties en kan worden aangepast aan uw specifieke monitoringbehoeften. Het ondersteunt ook verschillende uitvoermodi, inclusief web-gebaseerde interfaces en het exporteren van data naar externe monitoringsystemen.

Andere Grafische Monitoringtools

Naast Glances zijn er verschillende andere grafische tools beschikbaar voor het monitoren van processorgebruik op Linux systemen. Deze tools bieden intuïtieve interfaces en visuele representaties van CPU-gebruik, waardoor het gemakkelijker wordt om bronnengebruik te volgen en analyseren. Enkele populaire grafische monitoringtools zijn:
  1. GNOME System Monitor: Dit is de standaard systeemmonitoringtool voor de GNOME desktopomgeving. Het biedt een grafisch overzicht van CPU-gebruik, samen met andere systeembronnen zoals geheugen- en schijfgebruik. GNOME System Monitor biedt real-time monitoring en stelt u in staat om CPU-gebruik per proces te bekijken, waardoor het handig is om resource-intensieve applicaties te identificeren.

  2. KDE System Monitor (KSysGuard): KDE System Monitor is de equivalente monitoringtool voor de KDE Plasma desktopomgeving. Het biedt vergelijkbare functies als GNOME System Monitor, met een grafische weergave van CPU-gebruik en de mogelijkheid om individuele processen te monitoren. KDE System Monitor bevat ook geavanceerde functies zoals het instellen van waarschuwingen en het maken van aangepaste monitoringsensoren.

  3. Conky: Conky is een aanpasbare systeemmonitor die kan worden geconfigureerd om verschillende systeeminformatie, inclusief CPU-gebruik, op het bureaublad weer te geven. Het biedt een lichtgewicht en flexibele manier om CPU-gebruik in real-time te monitoren. Conky stelt u in staat om aangepaste scripts en configuraties te maken om de weergegeven informatie aan te passen aan uw specifieke behoeften.

  4. Xfce Task Manager: Voor gebruikers van de Xfce desktopomgeving is de Xfce Task Manager een eenvoudige en duidelijke tool voor het monitoren van systeembronnen, inclusief CPU-gebruik. Het biedt een overzichtelijke interface die CPU-gebruikspercentages toont en u in staat stelt lopende processen te beheren.

Deze grafische monitoringtools bieden een gebruiksvriendelijke manier om processorgebruik op Linux-systemen bij te houden, vooral voor gebruikers die de voorkeur geven aan een visuele weergave van systeembronnengebruik. Ze vullen de command-line tools aan en bieden een alternatieve benadering voor het monitoren van CPU-prestaties op Linux desktops en servers met grafische omgevingen.

Problemen Oplossen met Hoog CPU-gebruik op Linux Servers

CPU-intensieve Processen Identificeren

Bij het oplossen van problemen met hoog CPU-gebruik op Linux servers, is de eerste stap het identificeren welke processen de meeste CPU-bronnen gebruiken. Twee veelgebruikte commando's voor dit doel zijn `top` en `ps`.

Het top commando toont een real-time overzicht van de processen van het systeem en hun bronnengebruik. Om CPU-intensieve processen te identificeren met behulp van top, volg deze stappen:

  1. Open een terminal en voer het top commando uit.
  2. Zoek naar processen met hoge waarden in de "%CPU" kolom, die het percentage CPU-tijd toont dat door elk proces wordt gebruikt.
  3. Noteer processen die consistent bovenaan de lijst verschijnen met hoog CPU-gebruik.

Bijvoorbeeld:

top - 10:30:00 up 2 days, 15:00,  1 user,  load average: 1.50, 1.75, 1.90
Tasks: 100 total,   3 running,  97 sleeping,   0 stopped,   0 zombie
%Cpu(s): 25.0 us, 15.0 sy,  0.0 ni, 60.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7974.2 total,   4515.4 free,   1678.3 used,   1780.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   5921.1 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  1234 john      20   0 1500000 300000  25000 R  20.0   3.7   1:30.00 stress-ng
  5678 jane      20   0  800000 150000  10000 R  15.0   1.8   0:45.00 video_encode

In dit voorbeeld gebruiken de stress-ng en video_encode processen aanzienlijke CPU-bronnen.

Een ander nuttig commando is ps, dat een momentopname van de huidige processen biedt. Om CPU-intensieve processen te identificeren met behulp van ps, gebruik het volgende commando:

ps aux --sort=-%cpu | head

Dit commando toont alle processen gesorteerd op CPU-gebruik in aflopende volgorde en toont de top 10 CPU-consumerende processen.

Bijvoorbeeld:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
john      1234 20.0  3.7 1500000 300000 ?       R    May01 01:30:00 stress-ng
jane      5678 15.0  1.8 800000 150000 ?        R    May01 00:45:00 video_encode

Door top en ps te gebruiken, kunt u snel de processen identificeren die hoog CPU-gebruik veroorzaken op uw Linux server.

Technieken voor het Verminderen van Hoog CPU-gebruik

Zodra u de CPU-intensieve processen hebt geïdentificeerd, kunt u verschillende technieken gebruiken om hoog CPU-gebruik te verminderen en de werkbelasting efficiënt te beheren. Hier zijn enkele strategieën en best practices:
  1. Procesoptimalisatie:

    • Bekijk de geïdentificeerde CPU-intensieve processen en analyseer hun bronnenbehoeften.
    • Optimaliseer de processen door hun configuratie aan te passen, thread-aantallen, of door het gebruik van efficiëntere algoritmes.
    • Overweeg het gebruik van caching of het optimaliseren van databasequery's om CPU-gebruik te verminderen.
  2. Bronnentoewijzing:

    • Zorg ervoor dat het systeem genoeg CPU-cores en geheugen heeft om de werkbelasting te verwerken.
    • Gebruik procesprioriteit en niceness om passende prioriteiten toe te wijzen aan belangrijke processen.
    • Gebruik Linux cgroups (control groups) om het CPU-gebruik van specifieke processen of groepen processen te beperken.
  3. Load balancing:

    • Verdeel de werkbelasting over meerdere servers of CPU's om overbelasting van een enkele bron te vermijden.
    • Gebruik load balancing technieken, zoals een load balancer of gedistribueerde computing frameworks zoals Apache Hadoop of Apache Spark.
  4. Monitoring en waarschuwingen:

    • Stel monitoringsystemen in om continu CPU-gebruik en andere systeemmetrieken te volgen.
    • Configureer waarschuwingen om beheerders te informeren wanneer CPU-gebruik vooraf gedefinieerde drempelwaarden overschrijdt.
    • Gebruik tools zoals Nagios, Zabbix, of Prometheus om CPU-gebruik te monitoren en waarschuwingen te geven.
  5. Schalen en auto-scaling:

    • Implementeer horizontale schaling door meer servers toe te voegen om verhoogde werkbelasting te verwerken.
    • Gebruik auto-scaling oplossingen, zoals Kubernetes of AWS Auto Scaling, om automatisch het aantal instanties aan te passen op basis van CPU-gebruik.
  6. Code-optimalisatie:

    • Profileer en optimaliseer de applicatiecode om prestatie-knelpunten te identificeren en op te lossen.
    • Gebruik profiling tools zoals perf, Valgrind, of GDB om codeprestaties te analyseren en gebieden voor optimalisatie te identificeren.
  7. Caching en bronnen delen:

    • Implementeer caching om vaak gebruikte data in het geheugen op te slaan, waardoor CPU-gebruik voor herhaalde operaties wordt verminderd.
    • Deel bronnen, zoals databaseverbindingen of thread pools, om bron-overhead te minimaliseren.

Monitor en beoordeel regelmatig CPU-gebruik om nieuwe of terugkerende problemen te identificeren. Door continu processen te optimaliseren, bronnentoewijzing af te stemmen en best practices te implementeren, kunt u optimaal CPU-gebruik op uw Linux servers behouden.

Door deze technieken en best practices te volgen, kunt u effectief hoog CPU-gebruik op Linux servers oplossen en beheren, waardoor optimale prestaties en bronnengebruik worden gegarandeerd.

CPU-gebruik Monitoren in Gecontaineriseerde Omgevingen

CPU-gebruik van Docker Containers Monitoren

Het monitoren van CPU-gebruik in Docker containers is belangrijk voor het zorgen dat gecontaineriseerde applicaties goed presteren en bronnen efficiënt gebruiken. Docker biedt commando's waarmee u het CPU-gebruik van individuele containers kunt monitoren.

Een van de meest nuttige commando's is docker stats, dat real-time bronnengebruiksstatistieken toont voor lopende containers. Om docker stats te gebruiken, voer het volgende commando uit:

docker stats

Dit commando zal een continu bijgewerkte lijst van containers en hun CPU-gebruikspercentages tonen, samen met andere bron-metrieken zoals geheugengebruik en netwerk-I/O.

Bijvoorbeeld:

CONTAINER ID   NAME          CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O       PIDS
1234abcd       web-server    10.25%    100MiB / 500MiB       20.00%    1.5MB / 800kB   10MB / 0B       25
5678efgh       database      5.50%     200MiB / 1GiB         19.53%    500kB / 1.2MB   50MB / 2MB      10

In dit voorbeeld gebruikt de web-server container 10.25% van de CPU, terwijl de database container 5.50% gebruikt.

Een ander nuttig commando is docker top, dat de processen toont die binnen een specifieke container draaien. Om docker top te gebruiken, voer het volgende commando uit:

docker top <container-id>

Vervang <container-id> met de ID of naam van de container die u wilt inspecteren. Dit commando zal de processen tonen die binnen de container draaien, samen met hun CPU-gebruik.

Bijvoorbeeld:

PID                 USER                TIME                COMMAND
2345                root                0:05                nginx
3456                www-data            0:03                php-fpm

Hier draaien de nginx en php-fpm processen binnen de container, en hun CPU-gebruik kan worden gemonitord.

Om CPU-bronnen in Docker containers te beheren, kunt u de --cpus en --cpuset-cpus opties gebruiken bij het draaien van containers. De --cpus optie laat u het aantal CPU's specificeren dat een container kan gebruiken, terwijl --cpuset-cpus u in staat stelt specifieke CPU-cores toe te wijzen aan een container.

Bijvoorbeeld, om een container te beperken tot slechts 50% van de CPU te gebruiken, kunt u uitvoeren:

docker run --cpus=0.5 <image>

Door CPU-gebruik te monitoren en passende bronnenlimieten in te stellen, kunt u ervoor zorgen dat containers het hostsysteem niet overweldigen en optimale prestaties behouden.

CPU-gebruik Monitoren in Kubernetes Clusters

Het monitoren van CPU-gebruik in Kubernetes clusters is belangrijk voor het zorgen dat bronnen efficiënt worden gebruikt en het identificeren van prestatie-knelpunten. Kubernetes biedt verschillende tools en mechanismen voor het monitoren van CPU-gebruik op verschillende niveaus van het cluster.

Een van de ingebouwde tools voor het monitoren van CPU-gebruik in Kubernetes is de Metrics Server. De Metrics Server verzamelt bronnengebruiksmetrieken van de Kubernetes nodes en biedt een API voor het bevragen van die metrieken. Om de Metrics Server in te schakelen, moet u deze in uw cluster implementeren.

Zodra de Metrics Server is geïmplementeerd, kunt u het kubectl top commando gebruiken om CPU-gebruik voor nodes en pods te bekijken. Bijvoorbeeld, om CPU-gebruik voor nodes te bekijken, voer uit:

kubectl top nodes

Dit commando zal het CPU-gebruik en andere bron-metrieken voor elke node in het cluster tonen.

Bijvoorbeeld:

NAME           CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
node-1         0.5          10%    1000Mi          25%
node-2         0.8          20%    1500Mi          30%

Om CPU-gebruik voor pods te bekijken, voer uit:

kubectl top pods

Dit commando zal het CPU-gebruik en andere bron-metrieken voor elke pod in de huidige namespace tonen.

Bijvoorbeeld:

NAME                     CPU(cores)   MEMORY(bytes)
web-server-5c6f7f7d5     100m         200Mi
database-6b5c79d4b       50m          100Mi

Hier gebruikt de web-server pod 100 millicores (0.1 CPU) en de database pod gebruikt 50 millicores (0.05 CPU).

Een andere tool voor het monitoren van CPU-gebruik in Kubernetes is het Kubernetes Dashboard. Het Kubernetes Dashboard biedt een web-gebaseerde interface voor het monitoren en beheren van clusterbronnen. Het toont CPU-gebruiksmetrieken voor nodes en pods in een grafisch formaat, waardoor het gemakkelijker wordt om bronnengebruik te visualiseren en analyseren.

Voor meer geavanceerde monitoringmogelijkheden, kunt u tools zoals Prometheus en Grafana gebruiken. Prometheus is een monitoring- en waarschuwingssysteem dat metrieken kan verzamelen en opslaan uit verschillende bronnen, inclusief Kubernetes. Grafana is een datavisualisatieplatform dat u in staat stelt dashboards en grafieken te maken op basis van de metrieken verzameld door Prometheus.

Door Prometheus en Grafana in uw Kubernetes cluster te implementeren, kunt u monitoring en waarschuwingen instellen voor CPU-gebruik over pods, nodes en het hele cluster. Prometheus kan metrieken ophalen van de Kubernetes API server, evenals van individuele pods en nodes met behulp van exporters.

Met Grafana kunt u aangepaste dashboards maken om CPU-gebruiksmetrieken te visualiseren, waarschuwingen instellen op basis van vooraf gedefinieerde drempelwaarden, en inzicht krijgen in de prestaties en bronnengebruik van uw Kubernetes cluster.

Door deze tools en monitoringmogelijkheden te gebruiken, kunt u effectief CPU-gebruik in Kubernetes clusters monitoren en beheren, waardoor optimale prestaties en bronnentoewijzing voor uw gecontaineriseerde applicaties worden gegarandeerd.

Belangrijkste Conclusies

  • Gebruik command-line tools zoals top, htop, mpstat, vmstat, en sar om CPU-gebruik in real-time te monitoren en historische data te analyseren.
  • Identificeer CPU-intensieve processen met behulp van top en ps commando's om problemen met hoog CPU-gebruik op Linux servers op te lossen.
  • Pas technieken toe zoals procesoptimalisatie, bronnentoewijzing, load balancing en schaling om hoog CPU-gebruik te verminderen en werkbelasting efficiënt te beheren.
  • Monitor CPU-gebruik in Docker containers met behulp van docker stats en docker top commando's, en stel bronnenlimieten in met --cpus en --cpuset-cpus opties.
  • Gebruik Kubernetes tools zoals Metrics Server, Kubernetes Dashboard, Prometheus en Grafana om CPU-gebruik in Kubernetes clusters effectief te monitoren en beheren.