Hur man kontrollerar Linux -minnesanvändning

How Check Linux Memory Usage



Minne eller RAM (Random Access Memory) är mycket viktigt för en dator. Programmen du kör på din dator lagrar små bitar av information i RAM -minnet så att det kan komma åt det vid behov så snabbt som möjligt.

RAM -minnet är mycket snabbt och det är närmare datorns CPU (Central Processing Unit). Eftersom RAM är närmare datorns CPU har CPU: n direkt tillgång till RAM. Datatillgångslatensen är således mycket liten jämfört med lagringsenheter som HDD eller SSD. Därför använder alla program RAM för att lagra cachedata.







Tyvärr är RAM mycket dyrt och begränsat. Utan tillräckligt med ledigt RAM -minne fungerar din dator inte korrekt. Körprogrammen på din dator kan hänga eller stanna. Du kanske inte kan starta några nya program. I värsta fall kommer hela ditt system att hänga och bli oanvändbart.



Att kontrollera RAM -användning är en av de viktigaste uppgifterna i Linux. Du kan diagnostisera många Linux -problem om du kan övervaka RAM -användning av ditt Linux -system.



Det finns många verktyg för att kontrollera minnesanvändning i Linux. I den här artikeln kommer jag att visa dig några av de vanligaste sätten att kontrollera minnesanvändning på Linux. Så, låt oss komma igång.





Datorminnets enheter:

I den här artikeln kommer du att se mig använda termerna kilobyte, megabyte, gigabyte, kibibytes, mebibytes, gibibytes, och så vidare. Bli inte förvirrad. Jag kommer att förklara dem i det här avsnittet.

Alla datorlager använder samma enhet. Detta är mycket viktigt att förstå.



Datalagringsenheterna ges nedan.

  • Bit: Den minsta datalagringsenheten är lite. Lite kan hålla antingen en 0 eller en 1. Det är det.
  • Byte: 8 bitar bildar en byte.
  • Kilobyte: 1 000 byte bildar en kilobyte.
  • Megabyte: 1 000 kilobyte bildar en megabyte.
  • Gigabyte: 1 000 megabyte bildar en gigabyte.
  • Terabyte: 1 000 gigabyte bildar en terabyte.
  • Petabyte: 1 000 terabyte bildar en petabyte.
  • kibibyte: 1 024 byte bildar en kibibyte.
  • Mebibyte: 1 024 kibibyte bildar en mebibyt.
  • Gibibyte: 1 024 megabyte bildar en gibibyt.
  • Tebibyte: 1 024 gibibytes bildar en tebibyt.
  • Pebibyte: 1024 tebibyter bildar en pebibyt.

När det gäller byte är datorns lagringsenheter följande.

  • Kilobyte: 1000 byte eller 103byte.
  • Megabyte: 1 000 000 byte eller 106byte.
  • Gigabyte: 1 000 000 000 byte eller 109byte.
  • Terabyte: 1 000 000 000 000 byte eller 1012byte.
  • Petabyte: 1 000 000 000 000 000 byte eller 10femtonbyte.
  • kibibyte: 1024 byte eller 210byte.
  • Mebibyte: 1048576 byte eller 2tjugobyte.
  • Gibibyte: 1 073 741 824 byte eller 230byte.
  • Tebibyte: 1 099 511 627 776 byte eller 240byte.
  • Pebibyte: 1 125 899 906 842 624 eller 2femtiobyte.

Nu när du känner till datorns lagringsenheter bör du enkelt kunna konvertera från en enhet till en annan.

Lägg märke till att kilobyte, megabyte, gigabyte, terabyte och petabyte är krafter på 10 byte. Men kibibyte, mebibyte, gibibyte, tebibyte och pebibyte är krafter på 2 byte. För oss människor är det lätt att beräkna i 10 -decimaler (decimalsystem) eftersom vi har 10 fingrar. Men för datorer är det lättare att beräkna med effekt 2 (binärt numeriskt system). Så, datorer använder befogenheter 2 för att representera mängden lagring eller minne.

Enheterna har stenografi eller symboler. Du kommer att se dem väldigt ofta när du kontrollerar minnesanvändning i Linux.

Kortfattade beteckningar eller symboler ges nedan.

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

Vissa program kanske inte följer denna standard och använder dessa stenografier eller symboler omväxlande. Skillnaden är inte så stor mellan dessa enheter (dvs. kilobyte vs kibibyte) ändå. Oroa dig inte för det.

Minne vs byte i Linux:

I Linux kallas det fysiska minnet minne . När det fysiska minnet fylls på flyttar Linux intelligent data som är mindre åtkomliga från minnet till en specifik del av disken (HDD eller SSD). Denna del av disken kallas swap.

När det inte finns något ledigt fysiskt minne flyttas vissa mindre ofta åtkomliga data till bytet. Detta frigör det fysiska minnet och sparar därmed systemet från att krascha.

Byt disk är mycket långsam jämfört med RAM eller fysiskt minne. Om ett Linux -system använder bytesutrymme i stor utsträckning kan systemet bli väldigt långsamt och inte svara. Så ett Linux -system bör inte använda bytesutrymmet. Vi vill undvika det så mycket som möjligt. När ett Linux -system börjar fylla på bytesutrymmet är det ett tecken på att Linux -systemet behöver mer fysiskt minne. Det är en bra idé att lägga till mer RAM eller fysiskt minne i systemet.

Kontrollera minnesanvändning gratis:

fri är ett kommando som visar systemets totala minnesanvändningsinformation. fri levereras med nästan all Linux -distribution som standard.

Du kan kontrollera minnesanvändning med fri kommando enligt följande:

$fri

De fri kommando utan några kommandoradsalternativ visar information om minne och byte i Kibibytes-enheten.

Som standard är fri kommandot visar buffertar och cacheminnesanvändning i buff / cache kolumn. Om du vill se buffertarna och cacheminnet separat, kör sedan det fria kommandot med -i alternativ enligt följande:

$fri -i

Som du kan se, buffertar och cache minnesanvändningsinformation visas i olika kolumner.

Det fria kommandot visar följande information:

total: Detta är det totala tillgängliga fysiska minnet och bytesutrymmet (i kibibyte) för ditt Linux -system.

Begagnade: Detta är mängden fysiskt minne och bytesutrymme som används av ditt Linux -system. Lägg märke till att 0 KiB bytesutrymme används i min Ubuntu -maskin. Så det använder inte alls byte. Det är väldigt bra.

fri: Detta är mängden fysiskt minne som fortfarande är oanvänt.

delad: Detta är mängden minne som delas av olika processer eller program. Ett eller flera Linux -program kan använda samma bibliotek eller funktionssamtal. Istället för att tilldela minne flera gånger för samma saker delar Linux intelligent de vanliga sakerna bland dessa processer eller program. Detta sparar fysiskt minne. De tmpfs filsystem (dvs. /dev/shm , /springa , /spring/lås , /run/user/ , /sys/fs/cgroup etc.) använder också något fysiskt minne som delas med alla processer och program i Linux.

buffertar: Detta är mängden minne som används av kärnbuffertar. En buffert är ett minnesblock där data lagras tillfälligt medan data flyttas från en plats till en annan.

cache: Detta är mängden fysiskt minne som används för cachedata.

buff / cache: Detta är den totala mängden fysiskt minne som används för buffertar och cache.

tillgängliga: Detta är det uppskattade tillgängliga fysiska minnet som kan användas för att starta nya applikationer utan att byta.

Du kan också använda olika kommandoradsalternativ för att se minnet och byta användningsinformation i olika enheter.

Till exempel, för att se minnet och byta användningsinformation i byte, kör fri kommando med -b eller –Bytes alternativ enligt följande:

$fri -b

Om du vill se minnes- och bytesanvändningsinformation i kibibytes (standard) kör du fri kommando med -till eller –Kibi alternativ enligt följande:

$fri -till

Kör minnet och byt användningsinformation i megabyte fri kommando med -m eller –Mebi alternativ enligt följande:

$fri -m

För att se minnes- och bytesanvändningsinformation i gibibytes, kör fri kommando med -g eller -som alternativ enligt följande:

$fri -g

På samma sätt kan du använda -till dig och –Pebi kommandoradsalternativ för att visa minnes- och bytesanvändningsinformation i tebibytes respektive pebibytes.

Om du vill visa minnet och byta användningsinformation i kilobyte, kör sedan fri kommando med -kilo alternativ enligt följande:

$fri --kilo

Om du vill visa minnet och byta användningsinformation i megabyte, kör sedan fri kommando med -mega alternativ enligt följande:

$fri --mega

Om du vill visa minnet och byta användningsinformation i gigabyte, kör sedan fri kommando med –Giga alternativ enligt följande:

$fri --giga

På samma sätt kan du använda –Tera och -Karta kommandoradsalternativ för att visa minnes- och bytesanvändningsinformation i terabyte respektive petabyte.

De fri kommandot har också ett alternativ som kan läsas av människor. Detta alternativ kommer att skriva ut ett mycket lättförståeligt (för människor) minne och byta användningsinformation på skärmen.

För mänskligt läsbart utdata kör du fri kommando med -h eller -mänsklig alternativ enligt följande:

$fri -h

Som du kan se är det mänskligt läsbara formatet väldigt lätt att förstå.

De -h eller -mänsklig alternativet skriver ut minnet och byter användningsinformation i antingen byte, kibibytes, mebibytes, gibibytes, tebibytes eller pebibytes som standard. Dessa enheter använder bas-2 eller det binära numeriska systemet (effekt 2).

Om du vill se den mänskliga läsningen i bas-10 eller decimal numeriskt system (10 makt), kör sedan det fria kommandot med -h eller -mänsklig kommandoradsalternativ samt -Ja kommandoradsalternativ enligt följande:

$fri --mänsklig --Ja

De fri kommandot kommer att skriva ut minnet och byta användningsinformation i antingen byte, kilobyte, megabyte, gigabyte, terabyte eller petabyte. Dessa enheter använder bas-10 eller decimalnummersystemet (10-potens).

Om du vill visa det totala minnet och byta användningsinformation kör du gratiskommandot med alternativet -t eller –total enligt följande:

$fri -t

Som du kan se visas den totala minnesanvändningsinformationen (fysisk + byte) i slutet av utdata.

Du kan också köra fri kommando i övervakningsläge. I det här läget, fri kommandot kommer kontinuerligt att skriva ut minnet och byta användningsinformation efter ett givet tidsintervall (i sekunder).

Du kan köra fri kommando i övervakningsläge med -s eller –Sekunder kommandoradsalternativ enligt följande:

$fri -s <dröjsmål>

Eller,

$fri–Sekunder<dröjsmål>

Här, är antalet sekunder efter vilket nytt minne och bytesanvändningsinformation skrivs ut på skärmen.

Till exempel, för att skriva ut minne och byta användningsinformation kontinuerligt med 5 sekunders intervall, kör gratiskommandot enligt följande:

$fri -s 5

Som du kan se skrivs minnes- och bytesanvändningsinformation ut var 5: e sekund.

Om du vill stoppa fri kommando, tryck på + C .

I övervakningsläget, fri kommandot kommer kontinuerligt att skriva ut minne och byta användningsinformation som standard. Du kan använda -c eller -räkna kommandoradsalternativ för att begränsa antalet gånger nytt minne och bytesanvändningsinformation skrivs ut på skärmen.

Till exempel, för att skriva ut minnet och byta användningsinformation 5 gånger med 10 sekunders intervall, kör fri kommando enligt följande:

$fri -s 10 -c 5

Som du kan se, fri kommandot skrev ut minnet och byt användningsinformation endast 5 gånger med 10 sekunders intervall.

Det är nästan allt du behöver veta för att kontrollera minne och byta användning med fri kommando. Men, om du vill veta mer, kolla hemsidan för fri kommando enligt följande:

$man fri

Manpage of the fri kommandot ska visas.

Kontrollera minnesanvändning genom att läsa /proc /meminfo -fil:

Du kan också kontrollera minnesanvändningsinformationen för ditt Linux -system genom att läsa /proc/meminfo fil.

Du kan läsa /proc/meminfo fil med följande kommando:

$katt /procent/meminfo

Filen har mycket information om minnesanvändning. Minnesanvändningarna finns i kibibytenheten.

Den viktigaste minnesanvändningsinformationen i /proc/meminfo filen är:

MemTotal: Detta är det totala installerade minnet eller fysiska minnet (RAM) för Linux -systemet.

MemFree: Detta är mängden oanvänt fysiskt minne (RAM).

MemAvailable: Detta är den uppskattade mängden fysiskt minne (RAM) som är tillgängligt för nya program.

Buffertar: Detta är mängden fysiskt minne som är reserverat för kärnbuffertar. Buffertar används för att tillfälligt lagra data medan den flyttas från en plats till en annan.

Cachad: Detta är mängden fysiskt minne som används som cacheminne.

BytCachad: Detta är mängden minne som flyttades till swap -disken och flyttades tillbaka till det fysiska RAM -minnet. Men data cachas fortfarande i swap -disken.

Aktiva: Detta är mängden fysiskt minne som används och vanligtvis inte återvinningsbart om det inte behövs.

Inaktiv: Detta är mängden fysiskt minne som används och lätt kan återvinnas av andra processer eller program om det behövs.

Aktiv (anon): Detta är mängden fysiskt minne som används av de anonyma tmpfs -filsystemen och det delade minnet.

Inaktiv (anon): Detta är mängden fysiskt minne som används av de anonyma tmfs -filsystemen och det delade minnet som kan återvinnas.

Aktiv (fil): Detta är mängden cacheminne som används aktivt.

Inaktiv (fil): Detta är mängden cacheminne som är nyinläst eller kan återvinnas.

Ovisbar: Detta är mängden minne som inte kan återvinnas eftersom det är låst av användarprogram.

Låst: Detta är den totala mängden minne som inte kan återvinnas eftersom det är låst av användarprogram.

SwapTotal: Detta är den totala storleken på swap -disken.

Byt gratis: Detta är den mängd bytesutrymme som är ledigt.

Smutsig: Den totala mängden minne som väntar på att skrivas tillbaka till disken.

Skriv tillbaka: Den totala mängden minne som skrivs tillbaka till disken.

AnonPages: Den totala mängden minne som används av sidor och mappas i användarutrymmes sidtabeller.

Kartlagt: Mängden minne som används för filer som har mappats av Linux -kärnan, t.ex. biblioteken som används av olika program.

Exempel: Detta är mängden minne som delas och används av tmpfs -filsystemen.

KRansvarig: Mängden minne som hämtas av kärnan och kan återvinnas vid behov.

Platta: Detta är mängden minne som används av kärnan för att cacha datastrukturer för användning av kärnan.

SRclaimable: Detta är mängden minne från plattan som kan återvinnas.

S Ta tillbaka: Detta är mängden minne från plattan som inte kan återvinnas även vid behov.

Kärnstack: Detta är mängden minne som används för tilldelning av kärnstapel.

Sidtabeller: Detta är mängden minne som är avsett för sidtabeller. En sidtabell är en datastruktur som används av en dator för att kartlägga mellan virtuellt minne och fysiskt minne.

Studsa: Detta är mängden minne som används för bufferten för blockenheter (dvs. lagringsenheter som HDD eller SSD).

WritebackTmp: Mängden minne som används för FUSE: s temporära återkomstbuffertar.

Det finns många andra uppgifter om minnesanvändning i /proc/meminfo fil. Om du är intresserad kan du ta en titt på vad de finns på hemsidan procent .

Att öppna manpage of procent , kör följande kommando:

$man 5procent

Manus för proc bör öppnas.

Skriv in /proc/meminfo och tryck på . Det bör navigera dig till avsnittet /proc /meminfo som du kan se på skärmdumpen nedan. Du hittar beskrivningar av alla fält i /proc/meminfo fil här.

Kontrollera minnesanvändning med hjälp av toppen:

De topp är ett program som visar de pågående processerna och deras resursanvändning i realtid. De topp kommer förinstallerat i de flesta Linux -distributioner.

Du kan springa topp med följande kommando:

$topp

De topp programmet bör starta. På den övre delen av topp program som markeras i skärmdumpen nedan, bör du se minnes- och bytesanvändningssammanfattningen i megabyte -enheten (standard).

De topp kommandot visar följande fysiska minnesinformation:

total: Det totala tillgängliga fysiska minnet för systemet.

fri: Mängden fysiskt minne är fortfarande oanvänd.

Begagnade: Mängden fysiskt minne som används av systemet.

buff / cache: Mängden fysiskt minne som används som cacheminne och buffert.

tillgänglig Mem: Mängden fysiskt minne som är tillgängligt för nya program.

De topp kommandot visar följande bytesinformation:

total: Det totala tillgängliga swapminnet för systemet.

fri: Mängden ledigt swap -minne i systemet.

Begagnade: Mängden bytesminne som används av systemet.

Du kan trycka på m för att växla mellan olika sammanfattningslägen för minnesanvändning.

Till exempel genom att trycka på m en gång växlar till följande läge. I det här läget, topp visar det fysiska minnet och byt användningsinformation som percent_memory_used/total_memory_in_mebibytes .

Brådskande m igen kommer att ändra statusfältet för statusfältet. Informationen kommer att vara densamma som tidigare.

De topp kommandot visar också minnesanvändningsinformation för var och en av de processer som körs på din dator i realtid. Det översta kommandot visar information om minnesanvändning för processer i kibibytenheten som standard.

Som standard är topp kommandot visar följande minnesanvändningsinformation:

RESPEKTERAD: Detta är processens virtuella minnesstorlek. Virtuellt minne är det totala fysiska minnet och bytesminnet som används av processen.

NÖTKÖTT: Det här är processminnet Resident Memory. Residentminnet är mängden fysiskt minne som processen använder.

SHR: Detta är processens delade minnesstorlek. Detta är mängden minne som processen använder som också delas med några andra processer.

%MEM: Procentandelen av det fysiska minnet processen använder.

Du kan konfigurera topp kommando för att visa mer minnesanvändningsinformation, t.ex.

KODA: Detta är processens kodstorlek. Det är mängden fysiskt minne som är avsett för processens körbara kod. Det är också känt som Text Resident Set eller TRS.

DATA: Detta är processens data och stapelstorlek. Det är mängden minne som reserveras av en process. Det kanske inte är mappat till fysiskt minne än. Men det kommer alltid att visas i processens virtuella minne (VIRT). Det är också känt som Data Resident Set eller DRS.

RSan: Detta är processens anonyma minnesstorlek. Det är en delmängd av det fysiska minnet (RES) som representerar privata sidor som ännu inte är mappade till en fil.

RSfd: Detta är minnesstorleken för den inbyggda filen med säkerhet för processen. Det är en delmängd av det fysiska minnet (RES) som representerar delade sidor och stödjande programbilder, delade bibliotek, filmappningar etc.

RSsh: Detta är processens delade minnesstorlek för invånare. Det är en delmängd av det fysiska minnet (RES) som representerar delade anonyma sidor.

RSlk: Det här är processens inbyggda låsta minne. Det är mängden fysiskt minne (RES) som inte kan bytas ut. Det måste finnas kvar i det fysiska minnet.

BYTA: Detta är processens bytade storlek. Det är mängden fysisk minne (RES) information som flyttas till swap -diskutrymmet från det fysiska minnet.

BEGAGNADE: Detta är den totala mängden minne (fysisk + byte) som processen använder.

ANVÄND = RES + SWAP.

Observera att det fysiska minnet (RES) som används av en process är summeringen av Resident Anonymous Memory Size (RSan), Resident File-Backed Memory Size (RSfd) och Resident Shared Memory Size (RSsh).

RES = RSan + RSfd + RSsh

Kör för att aktivera dessa minnesinformationskolumner topp och tryck på f .

Använd piltangenterna för att navigera till de markerade kolumnerna och tryck på för att växla det. De aktiverade kolumnerna kommer att ha en * mark till vänster.

När du är klar trycker du på Vad för att gå tillbaka till det översta processövervakningsfönstret. Som du kan se visas kolumnerna för minnesanvändning SWAP, CODE, DATA, USED, RSan, RSfd, RSlk, RSsh.

Som standard är topp kommandot visar information om minnesanvändning i kibibytenheten. Om du vill se minnesanvändningsinformationen i en annan enhet som mebibyte, gibibyte, tebibyte eller pebibyte kan du göra det också.

För att växla mellan olika minnesenheter (kibibyte, mebibyte, gibibyte, tebibyte eller pebibyte), kör uppåt och tryck på Och .

topp minnesanvändningsinformation visas i megabyte.

topp minnesanvändningsinformation visas i gibibytes.

topp minnesanvändningsinformation visas i tebibytes.

topp minnesanvändningsinformation visas i pebibytes.

Många processer körs på ditt Linux -operativsystem. Det översta kommandot kan inte visa dem alla samtidigt. Du kan trycka och hålla ned och piltangenterna för att navigera i listan över processer topp kommandot visas.

Du kan också sortera utdata från toppkommandot efter en specifik kolumn.

Låt oss säga att du vill se vilken process som använder mest bytesutrymme. För att göra det, kör topp och tryck på f .

Välj sedan SWAP -kolumnen med piltangenterna på tangentbordet och tryck på s .

Sorteringsfältet för topp kommandot bör ändras till SWAP. Tryck Vad för att gå tillbaka till processövervakningsfönstret.

Som du kan se listas de processer som använder mest bytesutrymme först.

När du har konfigurerat topp kommando kan du trycka på + i för att spara konfigurationen till a toprc konfigurationsfil. På så sätt behöver du inte konfigurera om topp varje gång du använder den.

Kontrollera minnesanvändning med htop:

htop är en Linux-realtidsprocessvisare precis som topp . Men htop har ytterligare funktioner som topp gör inte. Den mest uppenbara nya funktionen hos htop är syntaxmarkering och bättre användargränssnitt. Du kan säga htop är en förlängd topp .

Som topp , htop är inte förinstallerat på det mesta av Linux -distributionen. Men det är tillgängligt i det officiella paketförvaret för nästan alla Linux -distributioner där ute. Så du kan enkelt installera det på din önskade Linux -distribution.

Att installera htop på Ubuntu/Debian, kör följande kommandon:

$sudolämplig uppdatering
$sudobenägenInstallera htop -och

NOTERA: På CentOS/RHEL, htop finns i EPEL -förvaret. Innan du installerar htop måste du ha ett EPEL -arkiv ( epel-release paket) installerat på ditt CentOS/RHEL -system.

Att installera htop på CentOS 7/RHEL 7, kör följande kommandon:

$sudo yum installeraepel-release-och
$sudo yum installera htop -och

Att installera htop på CentOS 8/RHEL 8, kör följande kommandon:

$sudodnfInstalleraepel-release-och
$sudodnfInstallera htop -och

En gång htop är installerat kan du köra det med följande kommando:

$htop

Htop bör börja.

På toppen, htop visar fysiskt minne och bytesanvändningssammanfattning. Det visar också minnes- och bytesanvändning i ett fint stapeldiagram.

Minnes- och bytesanvändningsinformationen finns i formatet Begagnade / total . htop kommer automatiskt att bestämma enheten (kibibyte, mebibyte, gibibyte, tebibyte eller pebibyte) för att bäst beskriva minnet och byta användningsinformation.

Minnes- och bytesanvändningsfältet representeras av olika färger. Färgerna har betydelser.

Kör för att veta vad varje färg representerar htop och tryck på h att gå till hjälpfönstret i htop .

Som du kan se representerar den gröna färgen fysiskt minne som används av olika program/processer, den blå färgen representerar det fysiska minnet som används som buffert, den gula färgen representerar det fysiska minnet som används som cacheminne och den röda färgen representerar det använda byta utrymme.

För att gå tillbaka till huvudet htop fönster, tryck på Vad .

Som topp , htop programmet visar också information om minnesanvändning för alla processer som körs på ditt Linux -system. htop kommer automatiskt att bestämma enheten (kibibyte, mebibyte, gibibyte, tebibyte eller pebibyte) för att bäst beskriva minnesanvändningen för var och en av processerna.

Som standard är htop kommandot visar följande minnesanvändningsinformation:

VIRT/M_SIZE: Detta är storleken på processens virtuella minne. Virtuellt minne är det totala fysiska minnet och bytesminnet som används av processen.

RES/M_RESIDENT: Detta är den inhemska uppsatta storleken på processen. Residentminnet är mängden fysiskt minne som processen använder. Det är lika med text + data + stack eller M_TRS + M_DRS.

SHR/M_SHARE: Detta är processens delade minnesstorlek. Detta är mängden minne som processen använder som också delas med några andra processer.

%MEM/PERCENT_MEM: Procentandelen av det fysiska minnet processen använder.

Du kan konfigurera htop kommando för att visa mer minnesanvändningsinformation, t.ex.

KOD / M_TRS: Detta är processens kodstorlek. Det är mängden fysiskt minne som är avsett för processens körbara kod.

DATA/M_DRS: Detta är processens data och stackstorlek. Det är mängden minne som reserveras av en process. Det kanske inte är mappat till fysiskt minne än. Men det kommer alltid att visas i processens virtuella minne (VIRT/M_SIZE).

LIB/M_LRS: Detta är processens bibliotekstorlek. Det är mängden fysiskt minne ett bibliotekskod (används av processen/programmet) använder.

DIRTY/M_DT: Detta är storleken på de smutsiga sidorna i processen. Sektionen/sidan som ändras i bufferten kallas en smutsig sida.

Kör för att aktivera dessa minnesinformationskolumner htop och tryck på F2 .

Navigera sedan till Kolumner från Uppstart väljer du den kolumn innan du vill lägga till nya kolumner från Aktiva kolumner väljer du den kolumn du vill lägga till från Tillgängliga kolumner och tryck på för att lägga till kolumnen.

Kolumnen ska läggas till i Aktiva kolumner sektion.

Lägg på samma sätt till de andra minneskolumnerna (kolumner som börjar med M_ ). När du är klar trycker du på att gå tillbaka till huvudet htop fönster.

Som du kan se läggs till ytterligare kolumner för minnesanvändning.

Du kan se processerna i trädvy . I denna syn organiseras processerna av förhållandet mellan förälder och barn.

För att växla till trädvy, tryck på t . Som du kan se är processerna mycket välorganiserade av deras förälder-barn-relation. I det här läget kan du se vilka underordnade processer som skapas av en förälderprocess och deras minnesanvändning.

För att lämna trädvyn, tryck på t på nytt. Du bör vara tillbaka till standardvyn.

Du kan också sortera processerna efter olika kolumner för minnesanvändning. Som standard är processerna sorterade efter CPU -användning (CPU%).

Om du vill sortera processerna efter en specifik kolumn trycker du på F6 .

Välj sedan en kolumn som du vill sortera processerna efter från Sortera efter och tryck på .

Jag kommer att sortera processerna efter M_RESIDENT / NÖTKÖTT kolumn för demonstration.

Som du kan se är processerna snyggt sorterade efter användarens minnesanvändning.

De htop programmet listar många processer. Alla dessa processer kan inte visas i den begränsade fönstret/skärmstorleken. Men du kan trycka på och piltangenterna för att enkelt navigera i processlistan.

Kontrollera minnesanvändning med smem:

Program för kontroll av minnesanvändning som topp , htop, etc. visar hela delade minnet för var och en av processerna. Vad det betyder är, även om minnet delas av vissa processer, det räknar det använda minnet för var och en av processerna som delar det minnet. Så du får typ av felaktig minnesanvändningsinformation.

I matematik ser det ut så här,

fysisk minnesanvändning av process = delad minnesanvändning + odelad minnesanvändning

jag kan försöker undvika detta och rapportera minnesanvändning korrekt. Det delar det delade minnet med antalet processer som använder det delade minnet och lägger till resultatet i var och en av processerna som delar det minnet. Så, minnesanvändningen ökar snyggt. Den totala minnesanvändningen är summeringen av minnesanvändningen för alla processer. Detta kommer inte att hända i htop eller topp .

I matematik ser det ut så här,

fysiskt minnesanvändning av process =(delad minnesanvändning/antal processer som delar minne)
+ odelat minne

jag kan är inte förinstallerat som standard i de flesta Linux -distributioner. Men det är tillgängligt i det officiella paketförvaret för det mesta av Linux -distributionen.

På Ubuntu/Debian kan du installera jag kan med följande kommandon:

$sudolämplig uppdatering
$sudobenägenInstallerajag kan-och

På CentOS/RHEL 7, jag kan finns i EPEL -paketförvaret. Så du måste lägga till EPEL -förvaret på CentOS/RHEL 7 för att installera jag kan .

På CentOS/RHEL 7 kan du installera jag kan med följande kommandon:

$sudo yum installeraepel-release-och
$sudo yum installerajag kan-och

Tyvärr, jag kan är inte tillgängligt i det officiella paketförvaret eller EPEL -förvaret för CentOS/RHEL 8. Du bör kunna kompilera jag kan från källan eller ladda ner jag kan binärt från officiell hemsida för smem .

Om du vill kompilera jag kan från källan, då kan du ladda ner smem -källkoden från officiell smem källsida .

Om du vill ladda ner en jag kan förkompilerad binär fil, sedan kan du ladda ner den från smem officiell nedladdningssida .

jag kan kan visa varje användares minnesanvändning.

För att veta hur mycket minne en Linux -användare använder, kör jag kan som följer:

$sudojag kan-du

Här, -till alternativet används för att visa enheten det jag kan används för att visa information om minnesanvändning.

jag kan använder följande enheter:

K - Kibibyte

M - Mebibyte

G - Gibibyte

T - Tebibyte

P - Pebibyte

De -till alternativet används för att skala utmatningskolumnerna beroende på terminalens fönsterstorlek. På så sätt kan du fixa utmatningen av jag kan mycket enkelt om någon viktig text blir beskuren.

De -u alternativet används för att visa användarminnesanvändningsinformation.

Som du kan se, jag kan rapporterade minnes- och bytesanvändningsinformation för varje användare av min Ubuntu -maskin.

jag kan visar följande användarminnesanvändningsinformation:

Användare: Linux -användarnamnet som minnesanvändningen rapporteras för.

Räkna: Antalet processer som användaren kör för tillfället.

Byta: Mängden bytesutrymme som användaren använder.

USS: Detta är den totala unika uppsättningsstorleken för användarprocesserna. Det är den totala mängden fysiskt minne som processerna som användaren äger använder som inte delas med andra processer.

PSS: Detta är den totala proportionella uppsättningsstorleken för användarprocesserna. Det är den totala mängden fysiskt minne och det jämnt uppdelade delade fysiska minnet som processerna som användaren äger använder.

RSS: Detta är den totala residentuppsättningsstorleken för användarprocesserna. Det är den totala mängden fysiskt minne och det delade fysiska minnet som processerna som användaren äger använder. RSS -minnesanvändningsinformation om jag kan är samma som RSS -minnesanvändningsinformation för topp eller htop .

Som standard, jag kan visar information om minnesanvändning i stigande ordning (lägst till högst). Om du vill se information om minnesanvändning i fallande ordning (högsta till lägsta), använd -r alternativet jag kan som följer:

$sudojag kan-kaur

Som du kan se, jag kan visade samma användarminnesanvändningsinformation. Men i fallande ordning.

Kör om du vill se den totala användarminnesanvändningsinformationen jag kan med -t alternativ enligt följande:

$sudojag kangenom

Som du kan se, jag kan lägger till informationen för alla rader för varje kolumn och visar den totala minnesanvändningsinformationen för var och en av kolumnerna i slutet.

Som standard, jag kan visar information om minnesanvändning i kibibytenheten. Om du använder -till alternativ, jag kan väljer automatiskt den bästa enheten för att visa information om minnesanvändning.

Om du vill visa information om minnesanvändning i procent av det totala tillgängliga fysiska minnet eller byta diskutrymme kan du använda -s alternativet istället för -till alternativ enligt följande:

$sudojag kan-pau

Som du kan se, jag kan visar användarminnesanvändningsinformation i procent av det totala fysiska minnet och byta diskutrymme.

Om du vill se information om systemomfattande minnesanvändning eller systemminnesanvändning, kör sedan jag kan med -i alternativ enligt följande:

$sudojag kan-kaw

Som du kan se, jag kan visar systemomfattande information om minnesanvändning.

jag kan visar följande systemomfattande information om minnesanvändning:

Område: Den del av systemet som minnet används för.

Begagnade: Mängden fysiskt minne som används för detta område.

Cache: Mängden fysiskt minne som används som cacheminne för detta område.

Noncache: Mängden fysiskt minne som används för detta område som inte cachelagras.

På samma sätt som tidigare kan du använda -t alternativ för att se den totala systemomfattande minnesanvändningsinformationen också.

$sudojag kan-försiktig

Du kan också se minnesanvändningen för processerna som körs på ditt Linux -system med jag kan .

För att göra det, kör jag kan som följer:

$sudojag kan-kar

Som du kan se, jag kan visar information om minnesanvändning för var och en av processerna som körs på min Ubuntu -maskin.

jag kan visar följande processmässiga minnesanvändningsinformation:

PID: Processens process -ID.

Användare: Användarnamnet för användaren som startade processen eller äger processen.

Kommando: Kommandot som används för att starta processen.

Byta: Mängden swap -diskutrymme som processen använder.

USS: Detta är processens unika storlek. Det är mängden fysiskt minne som processen använder som inte delas med andra processer.

PSS: Detta är processens proportionella uppsättningsstorlek. Det är mängden fysiskt minne och det jämnt uppdelade delade fysiska minnet processen använder.

RSS: Detta är bosättningens storlek på processen. Det är mängden fysiskt minne och det delade fysiska minnet processen använder.

Du kan också se minnesanvändningsinformationen för varje biblioteksfil som processerna använder med jag kan .

Kör för att se information om minnesanvändning för var och en av biblioteksfilerna i datorns fysiska minne jag kan med -m alternativ enligt följande:

$sudojag kan-kamr

jag kan kommer att visa minnesanvändningsinformation för var och en av biblioteksfilerna som laddats in i datorns fysiska minne, som du kan se på skärmdumpen nedan.

jag kan visar följande biblioteksmässiga minnesanvändningsinformation:

Karta: Biblioteksfilen som är mappad till datorns fysiska minne.

PID: er Det totala antalet processer som använder denna biblioteksfil.

PSS: Detta är den totala proportionella uppsättningsstorleken för processerna som använder biblioteksfilen. Det är mängden fysiskt minne och det jämnt uppdelade delade fysiska minnet processerna (med denna biblioteksfil) använder.

AVGPSS: Detta är den genomsnittliga proportionella uppsättningsstorleken för processerna som använder denna biblioteksfil. Det är det genomsnittliga fysiska minnet som delas mellan var och en av processerna (med hjälp av denna biblioteksfil). Du kan också säga, AVGPSS = PSS/PID (ungefär).

Kontrollera minnesanvändning med vmstat:

vmstat är ett annat program för att kontrollera minnesanvändning i Linux. Den visar nästan samma information som i /proc/meminfo fil.

Kör för att se information om minnesanvändning vmstat som följer:

$vmstat -s

vmstat ska visa systemomfattande minnesanvändningsinformation i kibibytes-enheten som du kan se på skärmdumpen nedan.

vmstat visar följande minnesanvändningsinformation:

totalt minne: Det totala tillgängliga fysiska minnet på din dator.

använt minne: Det totala använda fysiska minnet på din dator.

ledigt minne: Det totala fria fysiska minnet på din dator.

totalt byte: Det totala tillgängliga hårddiskutrymmet.

begagnat byte: Mängden bytt diskutrymme som används.

gratis byte: Mängden utbytesdiskutrymme är fortfarande ledig.

byta cache: Mängden swap -diskutrymme som används som cache.

bufferminne: Mängden fysiskt minne som används som en buffert för att hålla data tillfälligt medan den flyttas från en plats till en annan.

aktivt minne: Mängden fysiskt minne som används men inte kan återvinnas om det krävs av andra program.

inaktivt minne: Mängden fysiskt minne som används men lätt kan återvinnas av andra program om det behövs.

Kontrollera minnesanvändning med GNOME System Monitor:

GNOME System Monitor är en grafisk programvara för övervakning av minnesanvändning, körprocesser och diskanvändning. Den är förinstallerad på skrivbordsmiljöerna GNOME 3, Ubuntu MATE, Cinnamon och Budgie.

Du kan se minne och byta användningsinformation i Resurser fliken av GNOME System Monitor som du kan se på skärmdumpen nedan.

Det visar ett trevligt realtidsminne och byter användningsgraf under de senaste 60 sekunderna. Du kan ha en uppfattning om hur mycket minne och bytesanvändning som varierade övertid från denna graf.

Det visar det totala tillgängliga fysiska minnet, mängden fysiskt minne som används, andelen fysiskt minne som används och mängden fysiskt minne som används som cacheminne. Det kommer också att visa dig ett fint cirkeldiagram för fysiskt minne.

Det kommer också att visa det totala tillgängliga swap -diskutrymmet, mängden swap -utrymme som används, procentandelen av mängden swap -utrymme som används och ett trevligt swap -användningsdiagram.

I Processer fliken av GNOME System Monitor , kan du se minnesanvändningsinformation för var och en av processerna som körs på din dator.

Om du vill se mer minnesanvändningsinformation för processerna högerklickar du på (RMB) i rubrikfältet och markerar Virtuellt minne , Resident Memory , och Delat minne som visas på skärmdumpen nedan.

Den virtuella (VIRT), Resident (RES) och delade (RSS) minnesanvändningsinformationen för processerna ska visas som du kan se på skärmdumpen nedan.

Denna minnesanvändningsinformation är densamma som i topp eller htop .

Som standard visar GNOME System Monitor endast de processer som ägs av din inloggningsanvändare. Om du vill se en lista över alla processer som ägs av alla användare av ditt system klickar du på hamburgermenyn (

) och välj Alla processer som visas på skärmdumpen nedan.

Om du vill se processerna i trädvyn (relation mellan förälder och barn), klicka sedan på hamburgarmenyn (

) och kontrollera Visa beroenden som visas på skärmdumpen nedan.

I trädvyn kan du se vilken process (förälder) som startade vilka processer (barn) i den ordning de startades. Du kan också se hur mycket minne var och en av de överordnade processerna förbrukar och hur mycket minne varje barnprocess förbrukar.

Kontrollera minnesanvändning med KSysGuard:

KSysGuard är en grafisk programvara för övervakning av minnesanvändning och körprocesser. Det är förinstallerat på skrivbordsmiljön KDE Plasma.

Du kan se minne och byta användningsinformation i Systembelastning fliken av KSysGuard som du kan se på skärmdumpen nedan.

I Processbord fliken av KSysGuard , kan du se minnesanvändningsinformation för var och en av processerna som körs på din dator.

Som standard visar KSysGuard det fysiska minnet och användningsinformationen för delat minne för var och en av de pågående processerna.

Du kan högerklicka (RMB) i rubrikfältet och klicka på Visa kolumnen 'Virtuell storlek' och Visa kolumn 'Totalt minne' för att se mer information om minnesanvändning.

Som du kan se visar KSysGuard nu den virtuella minnesstorleken (VIRT) och den totala fysiska minnesanvändningen för var och en av de pågående processerna.

Som standard visar KSysGuard alla körprocesser som ägs av varje användare i Processbord flik. Du kan ändra vilka processer du vill se från rullgardinsmenyn i det övre högra hörnet av KSysGuard som visas på skärmdumpen nedan.

För trädvy, välj Alla processer, träd från rullgardinsmenyn.

I trädvyn kan du se vilken process (förälder) som startade vilka processer (barn) i den ordning de startades. Du kan också se hur mycket minne var och en av de överordnade processerna förbrukar och hur mycket minne varje barnprocess förbrukar.

Om du bara vill se processerna på systemnivå väljer du Systemprocesser från rullgardinsmenyn. Dessa processer ägs vanligtvis av rot användare.

Om du vill se processer på användarnivå väljer du Användarprocesser från rullgardinsmenyn. Dessa processer ägs vanligtvis av vanliga användare (icke-root).

Om du bara vill se de processer som ägs av inloggningsanvändaren väljer du Egna processer .

Om du bara vill se de program som körs på din dator, inte processer, välj sedan Endast program från rullgardinsmenyn. Endast de program som körs på din dator kommer att listas.

Slutsats:

I den här artikeln har jag täckt de vanligaste sätten att kontrollera minnesanvändning på Linux. Jag har visat hur man kontrollerar minnesanvändning av Linux-system från kommandoraden såväl som från grafiska skrivbordsmiljöer. Jag har förklarat hur man använder program som t.ex. fri , topp , htop , jag kan , vmstat , GNOME System Monitor , och KSysGuard för att kontrollera minnesanvändning av Linux. Jag har också diskuterat utmatningsformatet för dessa kommandon och program. Den här artikeln bör komma igång med Linux-minnesanvändningskontroll och ge dig en fördjupad kunskap om Linux-minnesanvändningskontrollverktyg.