Sådan kontrolleres Linux -hukommelsesbrug

How Check Linux Memory Usage



Hukommelse eller RAM (Random Access Memory) er meget vigtig for en computer. De programmer, du kører på din computer, gemmer små oplysninger i RAM'en, så den kan få adgang til den, når det er nødvendigt, så hurtigt som muligt.

RAM er meget hurtigt, og det er tættere på computerens CPU (Central Processing Unit). Da RAM er tættere på computerens CPU, har CPU'en direkte adgang til RAM. Datatilgangslatensen er således meget lille i forhold til lagerenheder såsom HDD eller SSD. Derfor bruger alle programmerne RAM til at gemme cachedata.







Desværre er RAM meget dyrt og begrænset. Uden nok ledig RAM fungerer din computer ikke korrekt. De kørende programmer på din computer kan hænge eller stoppe. Du kan muligvis ikke starte nye programmer. I værste fald vil hele dit system hænge og blive ubrugeligt.



Kontrol af RAM -brug er en af ​​de vigtigste opgaver i Linux. Du kan diagnosticere mange Linux -problemer, hvis du kan overvåge RAM -brug af dit Linux -system.



Der er mange værktøjer til at kontrollere hukommelsesbrug i Linux. I denne artikel vil jeg vise dig nogle af de mest almindelige måder at kontrollere hukommelsesforbrug på Linux. Så lad os komme i gang.





Enhederne i computerhukommelse:

I denne artikel vil du se mig bruge udtrykkene kilobytes, megabyte, gigabyte, kibibytes, mebibytes, gibibytes og så videre. Bliv ikke forvirret. Jeg vil forklare dem i dette afsnit.

Alle computerlagre bruger den samme enhed. Dette er meget vigtigt at forstå.



Computerenes lagerenheder er angivet nedenfor.

  • Lidt: Den mindste enhed til computerlagring er lidt. Lidt kan holde enten en 0 eller en 1. Det er det.
  • Byte: 8 bits danner en byte.
  • Kilobytes: 1.000 bytes danner en kilobyte.
  • Megabyte: 1.000 kilobytes danner en megabyte.
  • Gigabyte: 1.000 megabyte danner en gigabyte.
  • Terabyte: 1.000 gigabyte danner en terabyte.
  • Petabyte: 1.000 terabyte danner en petabyte.
  • kibibytes: 1.024 bytes danner en kibibyte.
  • Mebibyte: 1.024 kibibytes danner en mebibyte.
  • Gibibyte: 1.024 mebibytes danner en gibibyte.
  • Tebibyte: 1.024 gibibytes danner en tebibyte.
  • Pebibyte: 1.024 tebibytes danner en pebibyte.

Med hensyn til bytes er computerens lagerenheder som følger.

  • Kilobytes: 1.000 bytes eller 103bytes.
  • Megabyte: 1.000.000 bytes eller 106bytes.
  • Gigabyte: 1.000.000.000 bytes eller 109bytes.
  • Terabyte: 1.000.000.000.000 bytes eller 1012bytes.
  • Petabyte: 1.000.000.000.000.000 bytes eller 10femtenbytes.
  • kibibytes: 1024 bytes eller 210bytes.
  • Mebibyte: 1.048.576 bytes eller 2tyvebytes.
  • Gibibyte: 1.073.741.824 bytes eller 230bytes.
  • Tebibyte: 1.099.511.627.776 bytes eller 240bytes.
  • Pebibyte: 1.125.899.906.842.624 eller 2halvtredsbytes.

Nu hvor du kender computerens lagerenheder, skal du meget let kunne konvertere fra en enhed til en anden.

Bemærk, at kilobyte, megabyte, gigabyte, terabyte og petabyte er kræfter på 10 byte. Men, kibibyte, mebibyte, gibibyte, tebibyte og pebibyte er kræfter på 2 byte. For os mennesker er det let at beregne i kræfter på 10 (decimaltalsystem), da vi har 10 fingre. Men for computere er det lettere at beregne i 2 -potens (binært talsystem). Så computere bruger beføjelser på 2 til at repræsentere mængden af ​​lagerplads eller hukommelse.

Enhederne har stenografiske betegnelser eller symboler. Du vil se dem meget ofte, mens du kontrollerer hukommelsesforbrug i Linux.

Shorthand -betegnelserne eller symbolerne er angivet nedenfor.

  • Bytes: B
  • Kilobytes: KB eller kB
  • Megabyte: MB
  • Gigabyte: GB
  • Terabyte: OGSÅ
  • Petabyte: PB
  • Bytes: B
  • kibibytes: KiB eller K
  • Mebibyte: MiB eller M.
  • Gibibyte: GiB eller G.
  • Tebibyte: TiB eller T
  • Pebibyte: PiB eller P

Nogle programmer følger muligvis ikke denne standard og bruger disse stenografier eller symboler i flæng. Forskellen er alligevel ikke så stor mellem disse enheder (dvs. kilobyte vs kibibyte). Bare rolig om det.

Hukommelse vs swap i Linux:

I Linux kaldes den fysiske hukommelse hukommelse . Når den fysiske hukommelse fyldes op, flytter Linux intelligent de mindre ofte tilgængelige data fra hukommelsen til en bestemt del af disken (HDD eller SSD). Denne del af disken kaldes swap.

Når der ikke er tilgængelig ledig fysisk hukommelse, flyttes nogle sjældnere adgangsdata til swap'en. Dette frigør den fysiske hukommelse og sparer dermed systemet fra at gå ned.

Byt disk er meget langsom i forhold til RAM eller fysisk hukommelse. Hvis et Linux -system bruger swap -plads i vid udstrækning, kan systemet blive meget langsomt og ikke reagerer. Så et Linux -system bør ikke bruge byttepladsen. Vi vil undgå det så meget som muligt. Når et Linux -system begynder at fylde swap -rummet, er det et tegn på, at Linux -systemet har brug for mere fysisk hukommelse. Det er en god idé at tilføje mere RAM eller fysisk hukommelse til systemet.

Kontrol af hukommelsesforbrug gratis:

gratis er en kommando, der viser systemets samlede oplysninger om hukommelsesforbrug. gratis leveres som standard med næsten al Linux -distribution.

Du kan kontrollere hukommelsesforbruget med gratis kommando som følger:

$gratis

Det gratis kommando uden kommandolinjemuligheder viser oplysninger om hukommelse og swap-brug i Kibibytes-enheden.

Som standard er gratis kommandoen viser buffere og cache -hukommelsesbrug i buff / cache kolonne. Hvis du vil se bufferne og cachehukommelsen separat, skal du køre den gratis kommando med -i valgmulighed som følger:

$gratis -i

Som du kan se, er buffere og cache oplysninger om hukommelsesforbrug vises i forskellige kolonner.

Den gratis kommando viser følgende oplysninger:

i alt: Dette er den samlede tilgængelige fysiske hukommelse og swap -plads (i kibibytes) for dit Linux -system.

Brugt: Dette er mængden af ​​fysisk hukommelse og bytteplads, der bruges af dit Linux -system. Bemærk, at der bruges 0 KiB swapplads i min Ubuntu -maskine. Så det bruger slet ikke swap. Det er rigtig godt.

gratis: Dette er mængden af ​​fysisk hukommelse, der stadig er ubrugt.

delt: Dette er mængden af ​​hukommelse, der deles af forskellige processer eller programmer. Et eller flere Linux -programmer kan bruge det samme bibliotek eller funktionsopkald. I stedet for at allokere hukommelse flere gange til de samme ting, deler Linux intelligent de almindelige ting blandt disse processer eller programmer. Dette sparer fysisk hukommelse. Det tmpfs filsystemer (dvs. /dev/shm , /løb , /løb/lås , /run/user/ , /sys/fs/cgroup etc.) også bruge en vis fysisk hukommelse, som deles med alle processer og programmer i Linux.

buffere: Dette er mængden af ​​hukommelse, der bruges af kernebuffere. En buffer er en hukommelsesblok, hvor data midlertidigt opbevares, mens data flyttes fra et sted til et andet.

cache: Dette er mængden af ​​fysisk hukommelse, der bruges til cachedata.

buff / cache: Dette er den samlede mængde fysisk hukommelse, der bruges til buffere og cache.

ledig: Dette er den estimerede tilgængelige fysiske hukommelse, der kan bruges til at starte nye applikationer uden at skifte.

Du kan også bruge forskellige kommandolinjemuligheder til at se hukommelsen og skifte brugsinformation i forskellige enheder.

For eksempel at se hukommelsen og skifte brugsinformation i bytes, kør gratis kommando med -b eller –Bytes valgmulighed som følger:

$gratis -b

Hvis du vil se hukommelsen og bytte oplysninger om brug i kibibytes (standard), skal du køre gratis kommando med -til eller –Kibi valgmulighed som følger:

$gratis -til

For at se hukommelsen og bytte oplysninger om brug i megabyte, kør gratis kommando med -m eller –Mebi valgmulighed som følger:

$gratis -m

Hvis du vil se hukommelsen og skifte brugsinformation i gibibytes, skal du køre gratis kommando med -g eller -som valgmulighed som følger:

$gratis -g

På samme måde kan du bruge -til dig og –Pebi kommandolinjemuligheder for at vise hukommelsen og skifte brugsinformation i henholdsvis tebibytes og pebibytes.

Hvis du vil vise hukommelsen og skifte brugsinformation i kilobytes, skal du køre gratis kommando med -kilo valgmulighed som følger:

$gratis --kilo

Hvis du vil vise hukommelsen og bytte brugsoplysninger i megabyte, skal du køre gratis kommando med -mega valgmulighed som følger:

$gratis --mega

Hvis du vil vise hukommelsen og bytte brugsoplysninger i gigabyte, skal du køre gratis kommando med –Giga valgmulighed som følger:

$gratis --giga

På samme måde kan du bruge –Tera og -kort kommandolinjemuligheder for at vise hukommelsen og skifte brugsinformation i henholdsvis terabyte og petabyte.

Det gratis kommandoen har også en udlæsningsmulighed, der kan læses af mennesker. Denne mulighed udskriver en meget letforståelig (for mennesker) hukommelse og bytter brugsoplysninger på skærmen.

For output, der kan læses af mennesker, skal du køre gratis kommando med -h eller -human valgmulighed som følger:

$gratis -h

Som du kan se, er det menneskelæsbare format virkelig let at forstå.

Det -h eller -human option udskriver hukommelsen og bytter brugsoplysninger i enten bytes, kibibytes, mebibytes, gibibytes, tebibytes eller pebibytes som standard. Disse enheder bruger base-2 eller det binære numeriske system (2-potens).

Hvis du vil se det menneskelæsbare output i base-10 eller decimal-numerisk system (10-potens), skal du køre den gratis kommando med -h eller -human kommandolinjemulighed samt -Ja kommandolinjemulighed som følger:

$gratis --human --Ja

Det gratis kommandoen udskriver hukommelsen og bytter brugsoplysninger i enten bytes, kilobytes, megabyte, gigabyte, terabyte eller petabyte. Disse enheder bruger basis-10 eller decimaltalsystemet (10-potens).

Hvis du vil vise den samlede hukommelse og skifte brugsinformation, skal du køre kommandoen gratis med -t eller –total -indstillingen som følger:

$gratis -t

Som du kan se, vises den samlede hukommelsesinformation (fysisk + bytte) i slutningen af ​​output.

Du kan også køre gratis kommando i overvågningstilstand. I denne tilstand vil gratis kommandoen vil kontinuerligt udskrive hukommelsen og skifte brugsinformation efter et givet tidsinterval (i sekunder).

Du kan køre gratis kommando i overvågningstilstand med -s eller –Sekunder kommandolinjemulighed som følger:

$gratis -s <forsinke>

Eller,

$gratis–Sekunder<forsinke>

Her, er antallet af sekunder, hvorefter der vil blive udskrevet ny hukommelse og oplysninger om brugsbrug på skærmen.

For eksempel for at udskrive hukommelse og skifte brugsoplysninger kontinuerligt med 5 sekunders interval, kør den gratis kommando som følger:

$gratis -s 5

Som du kan se, udskrives oplysningerne om hukommelse og ombytning hvert 5. sekund.

Hvis du vil stoppe gratis kommando, tryk på + C .

I overvågningstilstanden vil gratis kommandoen vil løbende udskrive hukommelse og skifte brugsinformation som standard. Du kan bruge -c eller -tælle kommandolinjemulighed for at begrænse antallet af gange, ny hukommelse og oplysninger om udskiftning af brug udskrives på skærmen.

For eksempel at udskrive hukommelsen og skifte brugsinformation 5 gange med 10 sekunders interval, kør gratis kommando som følger:

$gratis -s 10 -c 5

Som du kan se, er gratis kommandoen udskrev hukommelsen og udskift brugsoplysninger kun 5 gange med 10 sekunders interval.

Det er næsten alt hvad du behøver at vide for at kontrollere hukommelse og bytte brug med gratis kommando. Men hvis du vil vide mere, så tjek manpage på gratis kommando som følger:

$mand gratis

Mandsiden til gratis kommando skal vises.

Kontrol af hukommelsesforbrug ved at læse /proc /meminfo -fil:

Du kan også kontrollere oplysningerne om hukommelsesforbrug for dit Linux -system ved at læse /proc/meminfo fil.

Du kan læse /proc/meminfo fil med følgende kommando:

$kat /procent/meminfo

Filen har en masse oplysninger om hukommelsesbrug. Hukommelsesanvendelserne er i kibibytes -enheden.

De vigtigste oplysninger om hukommelsesbrug i /proc/meminfo fil er:

MemTotal: Dette er den samlede installerede hukommelse eller fysiske hukommelse (RAM) for Linux -systemet.

MemFree: Dette er mængden af ​​ubrugt fysisk hukommelse (RAM).

Mem Tilgængelig: Dette er den estimerede mængde fysisk hukommelse (RAM) til rådighed for nye programmer.

Buffere: Dette er mængden af ​​fysisk hukommelse, der er forbeholdt kernebuffere. Buffere bruges til midlertidigt at gemme data, mens de flyttes fra et sted til et andet.

Cachelagret: Dette er mængden af ​​fysisk hukommelse, der bruges som cache -hukommelse.

SkiftCachelagret: Dette er mængden af ​​hukommelse, der blev flyttet til swap -disken og flyttet tilbage til den fysiske RAM. Men dataene gemmes stadig i swap -disken.

Aktiv: Dette er mængden af ​​fysisk hukommelse, der bruges og normalt ikke kan genvindes, medmindre det er nødvendigt.

Inaktiv: Dette er mængden af ​​fysisk hukommelse, der bruges og kan om nødvendigt genvindes af andre processer eller programmer.

Aktiv (anon): Dette er mængden af ​​fysisk hukommelse, der bruges af de anonyme tmpfs -filsystemer og delt hukommelse.

Inaktiv (anon): Dette er mængden af ​​fysisk hukommelse, der bruges af de anonyme tmfs -filsystemer og delt hukommelse, der kan genvindes.

Aktiv (fil): Dette er mængden af ​​cache -hukommelse, der bruges aktivt.

Inaktiv (fil): Dette er mængden af ​​cache -hukommelse, der er nyindlæst eller kan geninddrives.

Uovervindeligt: Dette er mængden af ​​hukommelse, der ikke kan genvindes, da den er låst af brugerprogrammer.

Låst: Dette er den samlede mængde hukommelse, der ikke kan genvindes, da den er låst af brugerprogrammer.

SwapTotal: Dette er swap -diskens samlede størrelse.

Skift gratis: Dette er mængden af ​​bytteplads, der er gratis.

Snavset: Den samlede mængde hukommelse, der venter på at blive skrevet tilbage til disken.

Skrive tilbage: Den samlede mængde hukommelse, der skrives tilbage til disken.

AnonPages: Den samlede mængde hukommelse, der bruges af sider og er knyttet til sidetabeller på brugerområdet.

Kortlagt: Mængden af ​​hukommelse, der bruges til filer, der er blevet mappet af Linux -kernen, f.eks. De biblioteker, der bruges af forskellige programmer.

Eksempel: Dette er mængden af ​​hukommelse, der deles og bruges af tmpfs -filsystemerne.

KRageligt: Mængden af ​​hukommelse, der kræves af kernen, og som kan genvindes, når det er nødvendigt.

Plade: Dette er mængden af ​​hukommelse, der bruges af kernen til at cache datastrukturer til brug af kernen.

SRclaimable: Dette er mængden af ​​hukommelse fra pladen, der kan genvindes.

SU Anvend ikke: Dette er mængden af ​​hukommelse fra pladen, der ikke kan genvindes, selv når det er nødvendigt.

KernelStack: Dette er mængden af ​​hukommelse, der bruges til tildeling af kernestakken.

Sidetabeller: Dette er mængden af ​​hukommelse, der er dedikeret til sidetabeller. En sidetabel er en datastruktur, der bruges af en computer til at kortlægge mellem virtuel hukommelse og fysisk hukommelse.

Bounce: Dette er mængden af ​​hukommelse, der bruges til bufferen af ​​blok -enheder (dvs. lagerenheder såsom HDD eller SSD).

WritebackTmp: Mængden af ​​hukommelse, der bruges til FUSE midlertidige tilbageførselsbuffere.

Der er mange andre oplysninger om hukommelsesbrug i /proc/meminfo fil. Hvis du er interesseret, kan du tage et kig på, hvad de er på manpagesiden procent .

At åbne manpage af procent , kør følgende kommando:

$mand 5procent

Mandsiden for proc bør åbnes.

Indtaste /proc/meminfo og tryk på . Det skulle navigere dig til afsnittet /proc /meminfo, som du kan se på skærmbilledet herunder. Du finder beskrivelser af hvert felt i /proc/meminfo fil her.

Kontrol af hukommelsesforbrug ved hjælp af top:

Det top er et program, der viser de kørende processer og deres ressourceforbrug i realtid. Det top kommer forudinstalleret i de fleste Linux -distributioner.

Du kan løbe top med følgende kommando:

$top

Det top programmet skal starte. På den øverste del af top program som markeret på skærmbilledet herunder, skal du se hukommelsen og skifte brugsresumé i mebibytes -enheden (standard).

Det top kommandoen viser følgende fysiske hukommelsesinformation:

i alt: Systemets samlede tilgængelige fysiske hukommelse.

gratis: Mængden af ​​fysisk hukommelse er stadig ubrugt.

Brugt: Mængden af ​​fysisk hukommelse, der bruges af systemet.

buff / cache: Mængden af ​​fysisk hukommelse, der bruges som cachehukommelse og buffer.

benytte Mem: Mængden af ​​fysisk hukommelse, der er tilgængelig for nye programmer.

Det top kommandoen viser følgende swap -oplysninger:

i alt: Den samlede tilgængelige swap -hukommelse for systemet.

gratis: Mængden af ​​gratis swap -hukommelse i systemet.

Brugt: Mængden af ​​swap -hukommelse, der bruges af systemet.

Du kan trykke på m at skifte mellem forskellige resumétilstande for hukommelsesbrug.

For eksempel at trykke på m en gang skifter til følgende tilstand. I denne tilstand vil top viser den fysiske hukommelse og byt oplysninger om brug som percent_memory_used/total_memory_in_mebibytes .

Tryk på m igen vil ændre statuslinjen for statuslinjen. Oplysningerne vil være de samme som før.

Det top kommandoen viser også oplysninger om brug af hukommelse for hver af de processer, der kører på din computer i realtid. Den øverste kommando viser oplysninger om hukommelsesforbrug af processer i kibibytes -enheden som standard.

Som standard er top kommandoen viser følgende oplysninger om brug af hukommelse:

RESPEKTERET: Dette er procesens virtuelle hukommelsesstørrelse. Virtuel hukommelse er den samlede fysiske og swap -hukommelse, der bruges af processen.

BØF: Dette er procesens hukommelsesstørrelse. Residenthukommelsen er mængden af ​​fysisk hukommelse, processen bruger.

SHR: Dette er procesens delte hukommelsesstørrelse. Dette er mængden af ​​hukommelse, som processen bruger, der også deles med nogle andre processer.

%MEM: Procentdelen af ​​den fysiske hukommelse, processen bruger.

Du kan konfigurere top kommando for at vise flere oplysninger om hukommelsesbrug, f.eks.

KODE: Dette er processtørrelsen. Det er mængden af ​​fysisk hukommelse dedikeret til procesens eksekverbare kode. Det er også kendt som Text Resident Set eller TRS.

DATA: Dette er procesens data og stabelstørrelse. Det er mængden af ​​hukommelse, der reserveres af en proces. Det er muligvis ikke tilknyttet fysisk hukommelse endnu. Men det vises altid i processens virtuelle hukommelse (VIRT). Det er også kendt som Data Resident Set eller DRS.

RSan: Dette er procesens anonyme hukommelsesstørrelse. Det er en delmængde af den fysiske hukommelse (RES), der repræsenterer private sider, der endnu ikke er tilknyttet en fil.

RSfd: Dette er processens hukommelsesstørrelse med Resident File-Backed Memory. Det er en delmængde af den fysiske hukommelse (RES), der repræsenterer delte sider og understøtter programbilleder, delte biblioteker, filtilknytninger osv.

RSsh: Dette er procesens Resident Shared Memory -størrelse. Det er en delmængde af den fysiske hukommelse (RES), der repræsenterer delte anonyme sider.

RSlk: Dette er procesens Resident Locked Memory -størrelse. Det er mængden af ​​fysisk hukommelse (RES), der ikke kan byttes ud. Det skal forblive i fysisk hukommelse.

BYTTE RUNDT: Dette er procesens byttede størrelse. Det er mængden af ​​fysisk hukommelse (RES) information, der flyttes til swap -diskpladsen fra den fysiske hukommelse.

BRUGT: Dette er den samlede mængde hukommelse (fysisk + swap), som processen bruger.

BRUGT = RES + SWAP.

Bemærk, at den fysiske hukommelse (RES), der bruges af en proces, er summeringen af ​​Resident Anonymous Memory Size (RSan), Resident File-Backed Memory Size (RSfd) og Resident Shared Memory Size (RSsh).

RES = RSan + RSfd + RSsh

Kør for at aktivere disse kolonner med hukommelsesinformation top og tryk på f .

Brug piletasterne til at navigere til de markerede kolonner, og tryk på at skifte det. De aktiverede kolonner vil have en * mærke til venstre.

Når du er færdig, skal du trykke på hvad for at gå tilbage til det øverste procesovervågningsvindue. Som du kan se, vises kolonnerne med oplysninger om hukommelsesbrug SWAP, CODE, DATA, USED, RSan, RSfd, RSlk, RSsh.

Som standard er top kommandoen viser oplysninger om hukommelsesbrug i kibibytenheden. Hvis du vil se oplysninger om hukommelsesforbrug i en anden enhed som mebibyte, gibibyte, tebibyte eller pebibyte, kan du også gøre det.

For at skifte mellem forskellige hukommelsesenheder (kibibyte, mebibyte, gibibyte, tebibyte eller pebibyte) skal du køre øverst og trykke på Og .

top oplysninger om hukommelsesforbrug vises i megabyte.

top oplysninger om hukommelsesforbrug vises i gibibytes.

top oplysninger om hukommelsesforbrug vises i tebibytes.

top oplysninger om hukommelsesforbrug vises i pebibytes.

Mange processer kører på dit Linux -operativsystem. Den øverste kommando kan ikke vise dem alle på én gang. Du kan trykke på og holde og piletasterne for at navigere i listen over processer top kommando vises.

Du kan også sortere output fra den øverste kommando efter en bestemt kolonne.

Lad os sige, at du vil se, hvilken proces der bruger mest mulig bytteplads. For at gøre det, løb top og tryk på f .

Vælg derefter SWAP -kolonnen ved hjælp af piletasterne på dit tastatur, og tryk på s .

Sorteringsfeltet for top kommandoen skal ændres til SWAP. Trykke hvad for at gå tilbage til procesovervågningsvinduet.

Som du kan se, vises de processer, der bruger mest bytteplads først.

Når du har konfigureret top kommando, kan du trykke på + i for at gemme konfigurationen til a toprc konfigurationsfil. På denne måde behøver du ikke at omkonfigurere top hver gang du bruger det.

Kontrol af hukommelsesforbrug ved hjælp af htop:

htop er en Linux-real-time procesfremviser ligesom top . Men htop har yderligere funktioner, der top gør ikke. Den mest oplagte nye funktion af htop er syntaksfremhævning og bedre brugergrænseflade. Du kan sige htop er en forlænget top .

Ligesom top , htop er ikke forudinstalleret på det meste af Linux -distributionen. Men den er tilgængelig i det officielle pakkeopbevaringssted for næsten alle Linux -distributioner derude. Så du kan nemt installere det på din ønskede Linux -distribution.

At installere htop på Ubuntu/Debian, kør følgende kommandoer:

$sudopassende opdatering
$sudopassendeinstallere htop -og

BEMÆRK: På CentOS/RHEL, htop er tilgængelig i EPEL -depotet. Inden du installerer htop , skal du have et EPEL -depot ( epel-frigivelse pakke) installeret på dit CentOS/RHEL -system.

At installere htop Kør følgende kommandoer på CentOS 7/RHEL 7:

$sudo yum installereepel-frigivelse-og
$sudo yum installere htop -og

At installere htop Kør følgende kommandoer på CentOS 8/RHEL 8:

$sudodnfinstallereepel-frigivelse-og
$sudodnfinstallere htop -og

Enkelt gang htop er installeret, kan du køre det med følgende kommando:

$htop

Htop skulle starte.

På toppen, htop viser fysisk hukommelse og bytte oversigt over brug. Det viser også hukommelsen og swap -brugen i et flot søjlediagram.

Oplysninger om hukommelse og swap -brug er i formatet Brugt / i alt . htop bestemmer automatisk enheden (kibibyte, mebibyte, gibibyte, tebibyte eller pebibyte) for bedst at beskrive hukommelsen og bytte oplysninger om brug.

Hukommelses- og swap -brugslinjer repræsenteres af forskellige farver. Farverne har betydninger.

For at vide, hvad hver farve repræsenterer, skal du køre htop og tryk på h at gå til hjælpevinduet i htop .

Som du kan se, repræsenterer den grønne farve fysisk hukommelse, der bruges af forskellige programmer/processer, den blå farve repræsenterer den fysiske hukommelse, der bruges som buffere, den gule farve repræsenterer den fysiske hukommelse, der bruges som cache -hukommelse, og den røde farve repræsenterer den anvendte bytte plads.

For at gå tilbage til hovedmenuen htop vindue, tryk på hvad .

Ligesom top , det htop programmet viser også oplysninger om hukommelsesforbrug for hver af de processer, der kører på dit Linux -system. htop vil automatisk beslutte enheden (kibibyte, mebibyte, gibibyte, tebibyte eller pebibyte) for bedst at beskrive hukommelsesforbruget for hver af processerne.

Som standard er htop kommandoen viser følgende oplysninger om brug af hukommelse:

VIRT/M_SIZE: Dette er størrelsen på processens virtuelle hukommelse. Virtuel hukommelse er den samlede fysiske og swap -hukommelse, der bruges af processen.

RES/M_RESIDENT: Dette er den residente indstillede størrelse på processen. Residenthukommelsen er mængden af ​​fysisk hukommelse, processen bruger. Det er lig med tekst + data + stak eller M_TRS + M_DRS.

SHR/M_SHARE: Dette er procesens delte hukommelsesstørrelse. Dette er mængden af ​​hukommelse, processen bruger, der også deles med nogle andre processer.

%MEM/PERCENT_MEM: Procentdelen af ​​den fysiske hukommelse, processen bruger.

Du kan konfigurere htop kommando for at vise flere oplysninger om hukommelsesbrug, f.eks.

KODE / M_TRS: Dette er procesens kodestørrelse. Det er mængden af ​​fysisk hukommelse dedikeret til procesens eksekverbare kode.

DATA/M_DRS: Dette er procesens data og stakstørrelse. Det er mængden af ​​hukommelse, der reserveres af en proces. Det er muligvis ikke tilknyttet fysisk hukommelse endnu. Men det vises altid i den virtuelle hukommelse (VIRT/M_SIZE) i processen.

LIB/M_LRS: Dette er procesens biblioteksstørrelse. Det er mængden af ​​fysisk hukommelse, et bibliotekskode (bruges af processen/programmet) bruger.

DIRTY/M_DT: Dette er størrelsen på de beskidte sider i processen. Den sektion/side, der er ændret i bufferen, kaldes en beskidt side.

Kør for at aktivere disse kolonner med hukommelsesinformation htop og tryk på F2 .

Naviger derefter til Kolonner fra Opsætning sektion, skal du vælge den kolonne, som du vil tilføje nye kolonner fra Aktive kolonner sektion, vælg den kolonne, du vil tilføje fra Tilgængelige kolonner sektion, og tryk på for at tilføje kolonnen.

Kolonnen skal føjes til Aktive kolonner afsnit.

På samme måde tilføjes de andre hukommelseskolonner (kolonner, der starter med M_ ). Når du er færdig, skal du trykke på at gå tilbage til hovedet htop vindue.

Som du kan se, tilføjes de ekstra kolonner til hukommelsesbrug.

Du kan se processerne i udsigt over træet . I denne opfattelse er processerne organiseret af forholdet mellem forælder og barn.

Tryk på for at skifte til trævisning t . Som du kan se, er processerne meget godt organiseret af deres forælder-barn-forhold. I denne tilstand kan du se, hvilke underordnede processer der er affødt af en overordnet proces og deres hukommelsesforbrug.

Tryk på for at forlade trævisningen t igen. Du skal være tilbage til standardvisningen.

Du kan også sortere processerne efter forskellige kolonner til hukommelsesforbrug. Som standard er processerne sorteret efter CPU -brug (CPU%).

Tryk på for at sortere processerne efter en bestemt kolonne F6 .

Vælg derefter en kolonne, som du vil sortere processerne efter fra Sorter efter sektion, og tryk på .

Jeg vil sortere processerne efter M_RESIDENT / BØF kolonne til demonstration.

Som du kan se, er processerne pænt sorteret efter den residente hukommelsesbrug.

Det htop program viser en masse processer. Alle disse processer kan ikke vises i den begrænsede vindues-/skærmstørrelse. Men du kan trykke på og piletasterne for meget let at navigere i proceslisten.

Kontrol af hukommelsesforbrug ved hjælp af smem:

Programmer til kontrol af hukommelsesforbrug f.eks top , htop, etc. viser den fulde delte hukommelse for hver af processerne. Hvad det betyder er, at selvom hukommelsen deles af nogle processer, tæller den denne brugte hukommelse for hver af de processer, der deler denne hukommelse. Så du får en slags forkert information om hukommelsesbrug.

I matematik ser det sådan ud,

fysisk brug af proces af hukommelse = delt hukommelsesforbrug + ikke -delt hukommelsesforbrug

jeg kan forsøger at undgå dette og rapportere hukommelsesforbrug korrekt. Det deler den delte hukommelse med antallet af processer, der bruger den delte hukommelse, og tilføjer resultatet til hver af processerne, der deler denne hukommelse. Så hukommelsesforbruget tilføjer pænt. Det samlede hukommelsesforbrug vil være summeringen af ​​hukommelsesforbruget for alle processerne. Dette sker ikke i htop eller top .

I matematik ser det sådan ud,

fysisk hukommelsesbrug af proces =(delt hukommelsesbrug/antal processer, der deler hukommelse)
+ ikke -delt hukommelse

jeg kan er ikke forudinstalleret som standard i de fleste Linux -distributioner. Men den er tilgængelig i det officielle pakkeopbevaringssted for det meste af Linux -distributionen.

På Ubuntu/Debian kan du installere jeg kan med følgende kommandoer:

$sudopassende opdatering
$sudopassendeinstallerejeg kan-og

På CentOS/RHEL 7, jeg kan er tilgængelig i EPEL -pakkelagret. Så du skal tilføje EPEL -depotet på CentOS/RHEL 7 for at installere jeg kan .

På CentOS/RHEL 7 kan du installere jeg kan med følgende kommandoer:

$sudo yum installereepel-frigivelse-og
$sudo yum installerejeg kan-og

Desværre, jeg kan er ikke tilgængelig i det officielle pakkeopbevaringssted eller EPEL -opbevaring af CentOS/RHEL 8. Du bør være i stand til at kompilere jeg kan fra kilden eller download jeg kan binært fra den officielle hjemmeside for smem .

Hvis du vil kompilere jeg kan fra kilden, så kan du downloade smem -kildekoden fra officiel smem kilde side .

Hvis du vil downloade en jeg kan præ-kompileret binær fil, så kan du downloade den fra smem officielle download side .

jeg kan kan vise brugers hukommelsesforbrug.

For at vide, hvor meget hukommelse en Linux -bruger bruger, skal du køre jeg kan som følger:

$sudojeg kan-du

Her er -til indstilling bruges til at vise enheden det jeg kan bruges til at vise oplysninger om brug af hukommelse.

jeg kan bruger følgende enheder:

K - Kibibyte

M - Mebibyte

G - Gibibyte

T - Tebibyte

P - Pebibyte

Det -til option bruges til at skalere outputkolonnerne afhængigt af terminalens vinduesstørrelse. På denne måde kan du rette output fra jeg kan meget let, hvis nogen vigtig tekst bliver beskåret.

Det -u indstillingen bruges til at vise oplysninger om brugerens hukommelse.

Som du kan se, jeg kan rapporterede hukommelses- og bytningsoplysninger for hver bruger af min Ubuntu -maskine.

jeg kan viser følgende oplysninger om brugers hukommelse:

Bruger: Linux -brugernavnet, hukommelsesforbruget er rapporteret for.

Tælle: Antallet af processer, brugeren kører i øjeblikket.

Bytte rundt: Mængden af ​​swap diskplads, brugeren bruger.

USS: Dette er den samlede unikke sætstørrelse for brugerprocesserne. Det er den samlede mængde fysisk hukommelse, som processerne ejes af brugeren, der ikke deles med andre processer.

PSS: Dette er den samlede proportionelle sætstørrelse for brugerprocesserne. Det er den samlede mængde fysisk hukommelse og den jævnt opdelte delte fysiske hukommelse, processerne, der ejes af brugeren, bruger.

RSS: Dette er den samlede Resident Set Size af brugerprocesserne. Det er den samlede mængde fysisk hukommelse og den delte fysiske hukommelse, processerne, der ejes af brugeren, bruger. Oplysninger om brug af RSS -hukommelse jeg kan er den samme som oplysninger om RSS -hukommelsesbrug for top eller htop .

Som standard, jeg kan viser oplysninger om hukommelsesbrug i stigende rækkefølge (lavest til højest). Hvis du vil se oplysninger om brug af hukommelse i faldende rækkefølge (højest til lavest), skal du bruge -r mulighed for jeg kan som følger:

$sudojeg kan-kor

Som du kan se, jeg kan viste de samme oplysninger om brugerens hukommelse. Men i faldende rækkefølge.

Hvis du vil se de samlede oplysninger om brug af hukommelse, skal du køre jeg kan med -t valgmulighed som følger:

$sudojeg kanigennem

Som du kan se, jeg kan tilføjer oplysningerne fra alle rækker for hver kolonne og viser den samlede hukommelsesbrugsinformation for hver af kolonnerne i slutningen.

Som standard, jeg kan viser oplysninger om hukommelsesforbrug i kibibytes -enheden. Hvis du bruger -til mulighed, jeg kan vælger automatisk den bedste enhed til visning af oplysninger om brug af hukommelse.

Hvis du vil vise oplysninger om hukommelsesforbrug som en procentdel af den samlede tilgængelige fysiske hukommelse eller bytte diskplads, kan du bruge -s mulighed i stedet for -til valgmulighed som følger:

$sudojeg kan-pau

Som du kan se, jeg kan viser oplysninger om brugerens hukommelse i procent af den samlede fysiske hukommelse og bytte diskplads.

Hvis du vil se oplysninger om systemdækkende hukommelsesforbrug eller oversigt over brug af systemhukommelse, skal du køre jeg kan med -i valgmulighed som følger:

$sudojeg kan-kaw

Som du kan se, jeg kan viser systemomfattende oplysninger om hukommelsesforbrug.

jeg kan viser følgende systemomfattende oplysninger om brug af hukommelse:

Areal: Den del af systemet, hukommelsen bruges til.

Brugt: Mængden af ​​fysisk hukommelse, der bruges til dette område.

Cache: Mængden af ​​fysisk hukommelse, der bruges som cachehukommelse for dette område.

Noncache: Mængden af ​​fysisk hukommelse, der bruges til dette område, som ikke cachelagres.

På samme måde som før kan du bruge -t mulighed for også at se de samlede systemomfattende oplysninger om hukommelsesforbrug.

$sudojeg kan-forsigtig

Du kan også se hukommelsesforbruget af de processer, der kører på dit Linux -system med jeg kan .

For at gøre det, løb jeg kan som følger:

$sudojeg kan-kar

Som du kan se, jeg kan viser oplysninger om brug af hukommelse for hver af de processer, der kører på min Ubuntu -maskine.

jeg kan viser følgende procesmæssige oplysninger om hukommelsesbrug:

PID: Processens proces -id.

Bruger: Brugernavnet på den bruger, der startede processen eller ejer processen.

Kommando: Kommandoen, der bruges til at starte processen.

Bytte rundt: Mængden af ​​swap diskplads, processen bruger.

USS: Dette er procesens unikke sætstørrelse. Det er mængden af ​​fysisk hukommelse, processen bruger, der ikke deles med andre processer.

PSS: Dette er procesens proportionelle sætstørrelse. Det er mængden af ​​fysisk hukommelse og den jævnt opdelte delte fysiske hukommelse, processen bruger.

RSS: Dette er procesens fastboende sætstørrelse. Det er mængden af ​​fysisk hukommelse og den delte fysiske hukommelse, processen bruger.

Du kan også se oplysninger om hukommelsesforbrug for hver af de biblioteksfiler, processerne bruger med jeg kan .

For at se oplysninger om brug af hukommelse for hver af bibliotekfilerne, der er indlæst i din computers fysiske hukommelse, skal du køre jeg kan med -m valgmulighed som følger:

$sudojeg kan-kamr

jeg kan vil vise oplysninger om hukommelsesforbrug for hver af bibliotekfilerne indlæst i din computers fysiske hukommelse, som du kan se på skærmbilledet herunder.

jeg kan viser følgende biblioteksmæssige oplysninger om hukommelsesbrug:

Kort: Biblioteksfilen, der er tilknyttet din computers fysiske hukommelse.

PID'er: Det samlede antal processer, der bruger denne biblioteksfil.

PSS: Dette er den samlede proportionelle sætstørrelse af processerne ved hjælp af biblioteksfilen. Det er mængden af ​​fysisk hukommelse og den jævnt opdelte delte fysiske hukommelse, processerne (ved hjælp af denne biblioteksfil) bruger.

AVGPSS: Dette er den gennemsnitlige proportionelle sætstørrelse for de processer, der bruger denne biblioteksfil. Det er den gennemsnitlige fysiske hukommelse, der deles mellem hver af processerne (ved hjælp af denne biblioteksfil) bruger. Du kan også sige AVGPSS = PSS/PID'er (om).

Kontrol af hukommelsesbrug ved hjælp af vmstat:

vmstat er et andet program til at kontrollere hukommelsesforbrug i Linux. Det viser næsten de samme oplysninger som i /proc/meminfo fil.

Kør for at se oplysninger om brug af hukommelse vmstat som følger:

$vmstat -s

vmstat skal vise systemomfattende oplysninger om hukommelsesforbrug i kibibytes-enheden, som du kan se på skærmbilledet herunder.

vmstat viser følgende oplysninger om brug af hukommelse:

samlet hukommelse: Den samlede tilgængelige fysiske hukommelse på din computer.

brugt hukommelse: Den samlede brugte fysiske hukommelse på din computer.

ledig hukommelse: Den samlede frie fysiske hukommelse på din computer.

samlet bytte: Den samlede tilgængelige swap diskplads.

brugt bytte: Mængden af ​​brugt diskplads.

gratis bytte: Mængden af ​​swap diskplads er stadig ledig.

byt cache: Mængden af ​​swap diskplads, der bruges som cache.

bufferhukommelse: Mængden af ​​fysisk hukommelse, der bruges som en buffer til midlertidigt at gemme dataene, mens de flyttes fra et sted til et andet.

aktiv hukommelse: Mængden af ​​fysisk hukommelse, der bruges, men kan ikke genvindes, hvis det kræves af andre programmer.

inaktiv hukommelse: Mængden af ​​fysisk hukommelse, der bruges, men let kan genvindes af andre programmer, hvis det er nødvendigt.

Kontrol af hukommelsesforbrug ved hjælp af GNOME System Monitor:

GNOME System Monitor er en grafisk software til overvågning af hukommelsesforbrug, kørende processer og diskbrug. Det er forudinstalleret på GNOME 3, Ubuntu MATE, Cinnamon og Budgie desktop -miljøer.

Du kan se hukommelse og skifte brugsinformation i Ressourcer fane af GNOME System Monitor som du kan se på skærmbilledet herunder.

Det viser en dejlig realtidshukommelse og bytter brugsgraf i de sidste 60 sekunder. Du kan have en idé om, hvor meget hukommelse og bytteforbrug der varierede overarbejde fra denne graf.

Det viser den samlede tilgængelige fysiske hukommelse, mængden af ​​fysisk hukommelse, procentdelen af ​​den fysiske hukommelse, og mængden af ​​fysisk hukommelse, der bruges som cachehukommelse. Det viser dig også et dejligt cirkeldiagram over fysisk brug af hukommelse.

Det vil også vise den samlede tilgængelige swap diskplads, mængden af ​​anvendt swapplads, procentdelen af ​​mængden af ​​anvendt swapplads og et flot cirkeldiagram for brug af swap.

I Processer fane af GNOME System Monitor , kan du se oplysninger om brug af hukommelse for hver af de processer, der kører på din computer.

Hvis du vil se flere oplysninger om brug af hukommelse til processerne, skal du højreklikke (RMB) på titellinjen og kontrollere Virtuel hukommelse , Resident Memory , og Delt hukommelse som vist på skærmbilledet herunder.

De virtuelle (VIRT), Resident (RES) og Shared (RSS) hukommelsesbrugsoplysninger om processerne skal vises, som du kan se på skærmbilledet herunder.

Disse oplysninger om brug af hukommelse er de samme som i top eller htop .

Som standard viser GNOME System Monitor kun de processer, der ejes af din loginbruger. Hvis du vil se en liste over alle processer, der ejes af hver bruger af dit system, skal du klikke på hamburgermenuen (

) og vælg Alle processer som vist på skærmbilledet herunder.

Hvis du vil se processerne i trævisning (forælder-barn-forhold), skal du klikke på hamburgermenuen (

) og tjek Vis afhængigheder som vist på skærmbilledet herunder.

I trævisningen kan du se, hvilken proces (forælder) der startede hvilke processer (barn) i den rækkefølge, de blev startet. Du kan også se, hvor meget hukommelse hver af de overordnede processer forbruger, og hvor meget hukommelse hver af de underordnede processer forbruger.

Kontrol af hukommelsesforbrug ved hjælp af KSysGuard:

KSysGuard er en grafisk software til overvågning af hukommelsesforbrug og kørende processer. Det er forudinstalleret på KDE Plasma -skrivebordsmiljøet.

Du kan se hukommelse og skifte brugsinformation i Systembelastning fane af KSysGuard som du kan se på skærmbilledet herunder.

I Procesbord fane af KSysGuard , kan du se oplysninger om brug af hukommelse for hver af de processer, der kører på din computer.

Som standard viser KSysGuard den fysiske hukommelse og oplysninger om brug af delt hukommelse for hver af de kørende processer.

Du kan højreklikke (RMB) på titellinjen og klikke på Vis kolonne 'Virtuel størrelse' og Vis kolonne 'Total hukommelse' for at se flere oplysninger om brug af hukommelse.

Som du kan se, viser KSysGuard nu også den virtuelle hukommelsesstørrelse (VIRT) og det samlede fysiske hukommelsesforbrug for hver af de kørende processer.

Som standard viser KSysGuard alle de løbende processer, der ejes af hver bruger i Procesbord fane. Du kan ændre, hvilke processer du vil se fra rullemenuen i øverste højre hjørne af KSysGuard som vist på skærmbilledet herunder.

Vælg for trævisning Alle processer, træ fra rullemenuen.

I trævisningen kan du se, hvilken proces (forælder) der startede hvilke processer (barn) i den rækkefølge, de blev startet. Du kan også se, hvor meget hukommelse hver af de overordnede processer forbruger, og hvor meget hukommelse hver af de underordnede processer forbruger.

Hvis du kun vil se processerne på systemniveau, skal du vælge Systemprocesser fra rullemenuen. Disse processer ejes normalt af rod bruger.

Hvis du vil se processer på brugerniveau, skal du vælge Brugerprocesser fra rullemenuen. Disse processer ejes normalt af almindelige brugere (ikke-root).

Hvis du kun vil se de processer, der ejes af loginbrugeren, skal du vælge Egne processer .

Hvis du kun vil se de programmer, der kører på din computer, ikke processer, skal du vælge Kun programmer fra rullemenuen. Kun de applikationsprogrammer, der kører på din computer, vises på listen.

Konklusion:

I denne artikel har jeg dækket de mest almindelige måder at kontrollere hukommelsesforbrug på Linux. Jeg har vist, hvordan man kontrollerer hukommelsesforbrug af Linux-systemer fra kommandolinjen såvel som fra grafiske skrivebordsmiljøer. Jeg har forklaret, hvordan man bruger programmer som f.eks gratis , top , htop , jeg kan , vmstat , GNOME System Monitor , og KSysGuard for at kontrollere, om Linux bruger hukommelsesforbrug. Jeg har også diskuteret outputformatet for disse kommandoer og programmer. Denne artikel skal komme i gang med kontrol af Linux-hukommelsesforbrug og give dig et indgående kendskab til værktøjerne til kontrol af Linux-hukommelsesforbrug.