Hukommelse

Hvordan sjekke minnebruk per prosess på Linux

Hvordan sjekke minnebruk per prosess på Linux
I disse dager kan en datamaskin kjøre mange programmer samtidig. CPU har ikke noe problem med å håndtere alle disse programmene fordi CPUer har flere kjerner for å håndtere multitasking.

Hvert av disse programmene kjører som en eller flere prosesser. Hver prosess tildeler noe RAM eller minne for seg selv. Det er viktig at prosessen fungerer riktig. Hvis en prosess ikke tildeler nok RAM eller minne, kan ikke prosessen opprettes, og programmet kan ikke starte.

Så en av de grunnleggende oppgavene du gjør på datamaskinen din, er å sjekke hvor mye minne eller RAM (Random Access Memory) hver prosess bruker. Fordi RAM eller minne på datamaskinen din er begrenset.

Tenk deg et tilfelle der du vil kjøre noe program og det mislykkes fordi du ikke har nok minne. Det kan være noen av prosessene som bruker mye minne du ikke trenger akkurat nå. Du kan drepe eller stoppe disse prosessene for å frigjøre RAM eller minne, slik at du kan starte viktige programmer.

I denne artikkelen vil jeg vise deg hvordan du sjekker minnebruk av hver av prosessene som kjører på Linux-maskinen din. Jeg vil bruke Debian 9 Stretch for all demonstrasjonen i denne artikkelen. Men det skal fungere på alle moderne Linux-distribusjoner. La oss komme i gang.

Kontrollere minnebruk ved hjelp av ps Command:

Du kan bruke ps kommando for å sjekke minnebruk av alle prosessene på Linux. Det er ett problem med denne prosedyren. ps ikke egentlig vise deg hvor mye minne en prosess bruker i KB- eller MB-format, men det vil vise deg hvor mye minne som brukes i prosent.

Du kan sjekke minnebruk (i prosent) av hele prosessen som kjører på Linux-operativsystemet ditt med følgende kommando:

$ ps -o pid, user,% mem, command ax | sorter -b -k3 -r

Som du kan se, er alle prosessene med minnebruk i prosent oppført i synkende rekkefølge (Prosessene som bruker det meste av minnet er oppført først).

Kontrollere minnebruk av prosesser med pmap:

Du kan sjekke minnet til en prosess eller et sett med prosesser i lesbart format (i KB eller kilobyte) med pmap kommando. Alt du trenger er PID for prosessene du vil sjekke minnebruk av.

La oss si at du vil sjekke hvor mye minne prosessen med PID 917 bruker. For å gjøre det, løp pmap som følger:

$ sudo pmap 917

Som du kan se, er det totale minnet som brukes av prosessen 917 516104 KB eller kilobyte. Du kan også se hvor mye minne bibliotekene og andre filer som kreves for å kjøre prosessen med PID 917, også bruker her.

Hvis du ikke bryr deg om hvor mye minne bibliotekene eller andre avhengige filer bruker, så kjør pmap som følger:

$ sudo pmap 917 | hale -n 1

Som du kan se, er bare det totale minnet som brukes av prosessen med PID 917, skrevet ut på skjermen.

Hvis du vil, kan du filtrere dette videre med kjipt og få bare størrelsen i KB eller kilobyte. For å gjøre det, løp pmap som følger:

$ sudo pmap 917 | hale -n 1 | awk '/ [0-9] K / print $ 2'

Som du kan se, blir bare minnebruk i KB eller kilobyte skrevet ut.

Nå kan du også liste opp hvor mye minne som brukes av flere prosesser som bruker PID-er med pmap som følger:

$ sudo pmap 917 531 | grep totalt

MERK: Her er 917 og 531 prosess-ID-er eller PID-er. Du kan sette så mange PID-er du vil på denne måten.

Bruke pmap til å liste opp minnebruk av alle prosessene i kilobyte:

I denne delen vil jeg vise deg hvordan du skriver ditt eget skallskript for å liste minnebruk av alle prosessene som kjører på ditt Linux-operativsystem i lesbart format (kilobyte eller KB).

Lag først en ny fil sysmon i din nåværende arbeidskatalog med følgende kommando:

$ touch sysmon

Gjør nå filen kjørbar med følgende kommando:

$ chmod + x sysmon

sysmon er skallskriptet som vil vise alle kjørende prosesser PID, EIEREN, HUKOMMELSE (i KB i synkende rekkefølge) og KOMMANDO. La oss begynne.

Åpne sysmon skript med favoritt teksteditoren din, skal jeg bruke Kate.

Nå, den første kommandoen jeg skal kjøre vil gi meg PID, EIEREN og KOMMANDO av alle kjørende prosesser atskilt med kolon (:) symbol og lagre det i RAWIN variabel. Gå deretter gjennom utgangen og skriv den ut på skjermen.

Som du ser, får jeg riktig utdata.

Nå er det på tide å behandle hver linje, lagre avgrenset informasjon i kolon i separate variabler. Det var det jeg gjorde på linje 7, 8 og 9.

Som du kan se, kan jeg skrive ut PID, EIEREN og KOMMANDO i mitt eget format nå.

Nå er det på tide å hente minnebruk av hver PID. Linje 10 gjør nettopp det.

Som du ser, fungerer alt perfekt. Nå kan jeg også skrive ut minnebruk av hver prosess i kilobyte (KB).

Nå er det bare å formatere utgangen slik at den ser fin ut. Jeg foretrekker bordformat. Linje 5 skriver ut overskriften til hver kolonne i tabellen.

Til slutt skrev jeg ut PID, EIEREN, HUKOMMELSE (i KB) og KOMMANDO av hver prosess i tabellformat ved hjelp av linje 14.

Som du ser, fungerer det ganske bra. Det er imidlertid litt problem, men prosessene er ikke riktig sortert i fallende rekkefølge etter minnebruk.

For å fikse det, fjernet jeg sorter -bnr -k3 fra linje 3 og pakket alt inn i en skallfunksjon sysmon_main (). Så overlot jobben med å sortere til sortere kommando.

Det endelige skallskriptet ser omtrent slik ut:

Som du ser, fungerer det bra.

Nå kan du flytte den til et sted som / usr / søppel og utfør det akkurat som andre kommandoer som følger:

$ sudo mv -v sysmon / usr / bin

Utfører sysmon:

Takk for at du leser denne artikkelen.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...