Opsio - Cloud and AI Solutions
Monitoring6 min lesing· 1 411 ord

Slik overvåker du ytelsen på en Linux-server: kommandoer, målinger og verktøy

Johan Carlsson
Johan Carlsson

Country Manager, Sverige

Publisert: ·Oppdatert:
Oversatt fra engelsk og gjennomgått av Opsios redaksjon. Se originalen →

For å overvåke ytelsen på en Linux-server sjekker du fire ressurser: CPU, minne, disk-I/O og nettverk. Bruk innebygde kommandoer som top, vmstat, free, iostat og ss til feilsøking i sanntid, og et agentbasert verktøy som Prometheus med node_exporter, Zabbix eller CloudWatch-agenten for å lagre historikk og sende varsler.

Viktigste punkter

  • Sjekk utnyttelse, metning og feil for hver ressurs (USE-metoden). Høy utnyttelse alene er ikke et problem. Køer og feil er det.
  • Sammenlign load average med antall CPU-kjerner, og følg med på %wa (I/O-venting) og %st (steal time) på VM-er i skyen.
  • For minne leser du kolonnen available i free, ikke free. Linux bruker ledig minne som cache med vilje.
  • Pressure stall information i /proc/pressure/ viser direkte hvor mye tid oppgaver venter på CPU, minne eller I/O.
  • Kommandoer viser nåtiden. For trender og varsler trenger du en overvåkingsagent og et lager for tidsserier.

Hvilke ytelsesmålinger er viktige på Linux?

Start med USE-metoden til ytelsesingeniøren Brendan Gregg: for hver ressurs sjekker du utnyttelse, metning og feil. Den gir deg en sjekkliste i stedet for gjetning.

RessursUtnyttelseMetningFeilKommandoer
CPU%us, %sy per kjerneLoad average over antall kjerner, kjørekø (r i vmstat), CPU-trykkSjeldne. Sjekk dmesg for machine-check-feiltop, mpstat -P ALL 1, vmstat 1
MinneBrukt mot availableSwap inn/ut (si/so), minnetrykk, OOM-killsMeldinger fra OOM killer i kjerneloggerfree -h, vmstat 1, journalctl -k
Disk%util per enhetKøstørrelse (aqu-sz), ventetid (r_await/w_await), I/O-trykkI/O-feil i dmesg, SMART-advarsleriostat -xz 1, df -h, df -i
NettverkGjennomstrømning mot grense for lenke eller instansTapte pakker, TCP-retransmisjonerGrensesnittfeilsar -n DEV 1, ss -s, ip -s link

Hvordan sjekker du CPU-bruk og last på Linux?

Kjør top (eller htop) og les CPU-linjen, og sammenlign deretter load average med antall kjerner fra nproc.

top # live visning. Trykk 1 for å vise hver kjerne
nproc # antall CPU-kjerner
uptime # load average over 1, 5 og 15 minutter
mpstat -P ALL 1 # bruk per kjerne hvert sekund (pakken sysstat)

Ifølge man-siden for proc_loadavg teller load average jobber som kjører eller venter på disk-I/O, som gjennomsnitt over 1, 5 og 15 minutter. En last på 6 på en server med 8 kjerner er helt i orden. En last på 6 på en server med 2 kjerner betyr at arbeid står i kø. Fordi lasten også omfatter prosesser som venter på disk, peker høy last med lav CPU-bruk vanligvis på et lagringsproblem.

I CPU-linjen i top er to felt viktige på servere i skyen:

  • wa: tid CPU-en sto ledig og ventet på I/O. Vedvarende høye verdier peker på trege disker eller nettverkslagring.
  • st: ifølge man-siden for top «tid stjålet fra denne VM-en av hypervisoren» (oversatt av oss). Vedvarende steal på en VM i skyen betyr at verten er travel, eller at en burstable instans har gått tom for CPU-kreditter.

Hvordan sjekker du minnebruk på Linux?

Kjør free -h og les kolonnen available. Man-siden for free definerer den som et estimat av minnet som er tilgjengelig for nye applikasjoner uten swapping, med page cache tatt med i beregningen.

free -h # minneoversikt i lesbart format
vmstat 1 5 # kolonnene si/so viser swap inn/ut per sekund
journalctl -k | grep -i "out of memory" # hendelser fra OOM killer

En server med lite «free» minne, men mye «available», er frisk: Linux fyller ledig RAM med diskcache og frigir det når programmer trenger det. Varselsignaler er fallende available-minne over flere dager (en mulig lekkasje), konstant swapaktivitet i vmstat og oppføringer fra OOM killer i kjerneloggen.

Hvordan sjekker du diskytelse og plass?

Bruk iostat -xz 1 for I/O-ytelse og df for plass og inoder.

iostat -xz 1 # utnyttelse, kø og latens per enhet (sysstat)
df -h # diskplass per filsystem
df -i # bruk av inoder: mange små filer kan fylle disse først
du -sh /var/log/* | sort -h # finn hva som bruker plass

I iostat følger du med på r_await og w_await (gjennomsnittlig antall millisekunder per forespørsel) og aqu-sz (køens lengde). Man-siden for iostat påpeker at for enheter som behandler forespørsler parallelt, som RAID-sett og moderne SSD-er, sier %util ikke noe om ytelsesgrensene deres. Økende latens og kølengde er bedre tegn på metning.

Hvordan overvåker du nettverksytelse?

sar -n DEV 1 # gjennomstrømning per grensesnitt
sar -n TCP,ETCP 1 # TCP-forbindelser og retransmisjoner
ss -s # oppsummering av sockets
ip -s link # feil og tapte pakker per grensesnitt

Økende retransmisjoner, tapte pakker eller grensesnittfeil tyder på nettverksproblemer selv om gjennomstrømningen ser normal ut. På VM-er i skyen sammenligner du gjennomstrømningen med nettverksgrensen for instanstypen.

Hva er pressure stall information (PSI)?

PSI er en funksjon i kjernen som rapporterer hvor mye tid oppgaver bruker på å vente på CPU, minne eller I/O. Kjernedokumentasjonen forklarer at hver fil i /proc/pressure/ har en «some»-linje (andelen av tiden minst noen oppgaver står fast) og, for minne og I/O, en «full»-linje (alle oppgaver som ikke er inaktive, står fast samtidig, noe kjernen beskriver som thrashing).

cat /proc/pressure/cpu
cat /proc/pressure/memory
cat /proc/pressure/io

PSI svarer direkte på «bremser denne ressursen arbeidet?», noe som gjør den til et godt signal for varsling. Hvis filene ikke finnes, er kjernen din bygget eller startet uten støtte for PSI.

Hvilke verktøy bør du bruke til kontinuerlig overvåking?

Kommandoer viser hva som skjer nå. For å fange problemer om natten, se trender og varsle riktig person installerer du en overvåkingsagent som sender målinger til et lager for tidsserier.

VerktøyPasser godt forMerknader
sysstat (sar)Enkeltservere, historikk til feilsøkingRegistrerer målinger med fast intervall til lokale filer. Ingen varsling
Prometheus + node_exporter + GrafanaMange servere, Kubernetes, åpen kildekode-stacknode_exporter eksponerer maskinvare- og kjernemålinger. Alertmanager sender varsler
Zabbix eller NagiosBlandede miljøer i eget datasenterAgentbasert med innebygde maler og varsling
Amazon CloudWatch-agentLinux på AWS EC2 og hybride servereCloudWatch-agenten legger til målinger fra gjestesystemet, som minne- og diskbruk, som grunnleggende EC2-overvåking ikke viser
Azure Monitor AgentLinux på Azure og Arc-aktiverte servereSender gjestemålinger og syslog til Azure Monitor

Hvilke varsler bør du sette opp først?

  1. Diskplass og inoder over 80–85 % på et hvilket som helst filsystem, med et prognosevarsel for «full innen 24 timer».
  2. Lavt tilgjengelig minne i mer enn 10 minutter, eller en hvilken som helst hendelse fra OOM killer.
  3. Load average over antall kjerner i mer enn 15 minutter, eller stigende CPU-trykk.
  4. Disklatens eller I/O-trykk godt over serverens normale baseline.
  5. Tjenestesjekker: applikasjonsporten svarer og en helse-URL returnerer suksess.
  6. Sikkerhetskopier og utløp av sertifikater, som feiler i det stille.

Disse terskelverdiene er utgangspunkt. Juster dem etter hver servers normale oppførsel slik at varslene forblir til å handle på. Veiledningen vår om overvåking av serverytelse dekker Windows og generell praksis, og overvåking av skyinfrastruktur dekker administrerte tjenester utover serveren.

Slik hjelper Opsio

Opsio overvåker og drifter Linux-servere på AWS, Azure og i eget datasenter som en del av våre administrerte IT-tjenester, inkludert varslingsrespons 24/7, patching og kapasitetsgjennomganger, med Prometheus og Grafana eller skynative verktøy. Et eksempel: AWS-plattformen vi bygde for WorkBuster kjører på EC2-instanser i en autoskaleringsgruppe, med CloudWatch-dashbord og alarmer for den daglige driften.

Ofte stilte spørsmål

Hva er den beste kommandoen for å sjekke ytelsen på en Linux-server?

Start med top for en live oversikt, deretter vmstat 1 for trender i CPU, minne og swap, og iostat -xz 1 for disker. Sammen viser de de fleste flaskehalser i løpet av et minutt.

Hva er en god load average for en Linux-server?

Det avhenger av antall CPU-kjerner. En load average på eller under antall kjerner betyr vanligvis ingen kø. Vedvarende last over antall kjerner betyr at oppgaver venter på CPU eller disk.

Hvorfor viser Linux nesten ikke noe ledig minne?

Linux bruker ubrukt RAM som diskcache og gir det tilbake når applikasjoner trenger det. Sjekk heller kolonnen available i free -h. Det er minnet som faktisk er tilgjengelig for nytt arbeid.

Hvordan ser jeg hvilken prosess som bruker mest CPU eller minne?

I top trykker du P for å sortere etter CPU og M for å sortere etter minne. Fra et skript bruker du ps aux --sort=-%cpu | head eller ps aux --sort=-%mem | head.

Hvordan overvåker jeg en Linux-server eksternt?

Installer en agent som node_exporter, Zabbix-agenten eller CloudWatch-agenten, og send målinger til en sentral server eller skytjeneste. Da får du historikk, dashbord og varsler uten å logge inn på hver maskin.

Skrevet av

Johan Carlsson
Johan Carlsson

Country Manager, Sverige

Johan leder Opsios virksomhet i Sverige og driver AI-innføring, DevOps-transformasjon, sikkerhetsstrategi og skyløsninger for nordiske bedrifter. Med over 12 års erfaring innen skyinfrastruktur har han levert mer enn 200 prosjekter på AWS, Azure og GCP — med spesialisering innen Well-Architected-vurderinger, landingssonedesign og multi-sky-strategi.

Redaksjonelle retningslinjer: Artikkelen er skrevet av skyeksperten som er oppgitt i bylinen over. Vi oppdaterer den når teknologien eller regelverket den omhandler endres; datoene på siden viser siste oppdatering. Opsio er redaksjonelt uavhengig.