december 17, 2021

hur man kontrollerar minnesanvändning i Linux

se alla GNU/Linux-relaterade FAQ

Hur kontrollerar jag minnesanvändning i Linux med kommandorad och GUI-alternativ?
vi har fysiskt RAM som 16 GB och byt minne. Byt minne är inget annat än diskutrymme som gör att din Linux-dator kan köra fler applikationer samtidigt än vad som passar in i systemminnet (RAM). Den här sidan förklarar olika kommandon för att kontrollera minnesanvändning och användning i Linux med kommandoradsverktyg och GUI-verktyg.

annons

kommandon för att kontrollera minnesutnyttjandet i Linux

ditt Linux-system måste köras på optimal nivå. Minne spelar en viktig roll i ett Linux-system. En utvecklare eller erfaren sysadmin måste känna till den totala mängden gratis och använt fysiskt, inklusive swap-minne i servern. Det vore bäst om du höll ett öga på buffertar och cachar som används av kärnan också.

filen / proc / meminfo

filen /proc/meminfo rapporterar statistik om minnesanvändning på Linux. Använd kommandot cat command / less eller grep command / egrep enligt följande på din Linux-ruta:
cat /proc/meminfo
more /proc/meminfo

hur man kontrollerar minnesanvändning i Linux
varje rad i/proc / meminfo-filen består av ett parameternamn, följt av ett kolon, parametervärdet och en måttenhet. Till exempel ”kB”.

förstå parametrar för minnesanvändning

fält beskrivning tabell
Parameter beskrivning
MemTotal totalt användbart RAM-minne (dvs., fysiskt RAM minus några reserverade bitar och kärnan binär kod).
MemFree summan av LowFree+HighFree.
MemAvailable (sedan Linux 3.14) en uppskattning av hur mycket minne som är tillgängligt för att starta nya applikationer, utan att byta.
buffertar relativt tillfällig lagring för raw-diskblock som inte borde bli oerhört stora (20MB eller så).
Cachad cache i minnet för filer som läses från disken (sidcachen). Inkluderar inte SwapCached.
SwapCached minne som en gång byttes ut, byts tillbaka in men är fortfarande också i swap-filen.
aktivt minne som har använts nyligen och vanligtvis inte återvunnits om det inte är absolut nödvändigt.
inaktivt minne som har använts mindre nyligen. Det är mer berättigat att återvinnas för andra ändamål.
HighTotal Total mängd highmem. Highmem är allt minne över ~860 MB fysiskt minne. Highmem områden är för användning av användarutrymme program, eller för sidan cache. Kärnan måste använda tricks för att komma åt detta minne, vilket gör det långsammare att komma åt än lowmem.
HighFree mängd gratis highmem.
LowFree mängd gratis lowmem.
SwapTotal Total mängd swap utrymme tillgängligt.
SwapFree mängd byteutrymme som för närvarande är oanvänd.
smutsigt minne som väntar på att skrivas tillbaka till disken.
Writeback minne som aktivt skrivs tillbaka till disken.
AnonPages icke-fil backas sidor mappas in användarutrymme sidtabeller.
mappade filer som har mappats i minnet (med mmap(2)), till exempel bibliotek.
Shmem mängden minne som förbrukas i tmpfs(5) filsystem.
KReclaimable Kärntilldelningar som kärnan kommer att försöka återta under minnestryck. Inkluderar SReclaimable (nedan) och andra direkta tilldelningar med en shrinker.
platta cache för datastrukturer i kärnan. (Se slabinfo (5).)
SReclaimable del av plattan, som kan återvinnas, såsom cachar.
SUnreclaim del av plattan, som inte kan återvinnas på minnestryck.
KernelStack mängden minne som tilldelats kärnstackar.
PageTables mängden minne tillägnad den lägsta nivån av sidtabeller.
nfs_unstable NFS-sidor skickade till servern, men ännu inte engagerade i stabil Lagring.
Bounce minne som används för block enhet ”bounce buffertar”.
WritebackTmp minne som används av FUSE för tillfälliga writeback buffertar.
CommitLimit Detta är den totala mängden minne som för närvarande är tillgängligt för att tilldelas på systemet, uttryckt i kilobyte. Denna gräns följs endast om strikt overcommit-redovisning är aktiverad (läge 2 i /proc/sys/vm/overcommit_memory). Gränsen beräknas enligt formeln som beskrivs under / proc/sys/vm / overcommit_memory.
Committed_AS mängden minne som för närvarande allokeras på systemet. Det engagerade minnet är en summa av allt minne som har allokerats av processer, även om det ännu inte har ”använts” av dem. En process som allokerar 1 GB minne(med malloc (3) eller liknande), men berör bara 300 MB av det minnet kommer att dyka upp som att använda endast 300 MB minne även om det har adressutrymmet allokerat för hela 1 GB. Denna 1GB är minne som har” begåtts ” av VM och kan användas när som helst av allokeringsprogrammet. Med strikt overcommit aktiverat på systemet (läge 2 i /proc/sys/vm/overcommit_memory), kommer allokeringar som skulle överstiga CommitLimit inte att tillåtas. Detta är användbart om man måste garantera att processer inte kommer att misslyckas på grund av brist på minne när det minnet har tilldelats.
VmallocTotal Total storlek på vmalloc-minnesområdet.
VmallocUsed mängd vmalloc område som används. Sedan Linux 4.4 beräknas detta fält inte längre och är hårdkodat som 0. Se / proc / vmallocinfo.
VmallocChunk största sammanhängande block av vmalloc område som är gratis. Sedan Linux 4.4 beräknas detta fält inte längre och är hårdkodat som 0. Se / proc / vmallocinfo.
LazyFree visar mängden minne markerat med madvise(2) MADV_FREE.
AnonHugePages icke-fil backas stora sidor mappas in användarutrymme sidtabeller.
ShmemHugePages minne som används av delat minne (shmem) och tmpfs (5) allokeras med stora sidor
ShmemPmdMapped delat minne mappat i användarutrymme med stora sidor.
CmaTotal totalt CMA (sammanhängande Minnesallokerare) sidor.
CmaFree gratis CMA (sammanhängande Minnesallokerare) sidor.
HugePages_Total storleken på poolen av stora sidor.
HugePages_Free antalet stora sidor i poolen som ännu inte tilldelats.
HugePages_Rsvd Detta är antalet stora sidor för vilka ett åtagande att fördela från poolen har gjorts, men Ingen tilldelning har ännu gjorts. Dessa reserverade stora sidor garanterar att en applikation kommer att kunna tilldela en stor sida från poolen av stora sidor vid fel tid.
HugePages_Surap detta är antalet stora sidor i poolen över värdet i /proc/sys/vm/nr_hugepages. Det maximala antalet överskott stora sidor styrs av / proc/sys/vm / nr_overcommit_hugepages.
Hugepagesize storleken på stora sidor.
DirectMap4k antal byte RAM linjärt mappas av kärnan i 4KB sidor.
DirectMap4M antal byte RAM linjärt mappas av kärnan i 4MB sidor.
DirectMap2M antal byte RAM linjärt mappas av kärnan i 2MB sidor.
DirectMap1G x86 med CONFIG_X86_64 och CONFIG_X86_DIRECT_GBPAGES aktiverat.

vi kan filtrera bort filen med grep-kommandot eller egrep-kommandot enligt följande:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
Linux proc meminfo-fil

använda gratis kommando för att kontrollera använt och ledigt minnesutnyttjande

utgången från /proc/meminfo är kraftfull men inte användarvänlig. Därför måste vi använda det fria kommandot. Det fria kommandot visar mängden ledigt och använt minne i Linux-systemet. Till exempel:
free
vill du se läsbar produktion? Försök:
free -h
free --human

Provutgångar:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
de visade kolumnerna är följande:
kolumn beskrivning
totalt totalt installerat minne
används använt minne (beräknat som total-free-buffertar-cache)
gratis oanvänt minne (MemFree och SwapFree i / proc / meminfo)
delat minne som används mest av tmpfs (Shmem in / proc / meminfo)
buffertar minne som används av kärnbuffertar (buffertar i / proc / meminfo)
cache minne som används av sidcachen och plattor (cachade och SReclaimable i / proc / meminfo)
buff / cache summan av buffertar och cache
tillgänglig uppskattning av hur mycket minne som är tillgängligt för att starta nya applikationer, utan att byta.

vi kan upprepa utskrift gratis kommando utgång varje N sekunder. Till exempel skriva ut var 5: e sekund och avsluta efter tio sådana repetitioner (räkningar) på skärmen:
free -s 5 -c 10
vi kan styra produktionen av gratis kommando enligt följande:
free
free -k
free -g
free -m

kontrollera fri kommandoutgång
alternativ visa utdata i
-b, — bytes
–kilo kilobyte
–mega megabyte
–giga Gigabyte
–tera terabyte
–peta petabyte
-k, –kibi kibibytes
-m, — mebi mebibyte
-g, — gibi gibibytes
–tebi tebibytes
–pebi pebibytes

vmstat-kommandot

vmstat-kommandot är kraftfullt och visar information om Linux-hårdvara, till exempel:

  • processer
  • minne
  • personsökning
  • Block IO
  • fällor
  • diskar
  • CPU-aktivitet

öppna terminalen och skriv följande kommando:
vmstat
prov session från min Ubuntu Linux desktop:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11434840 2567516 10238916 0 0 26 75 142 55 13 5 82 0 0

passera-w för att se bred utgång på skärmen:
vmstat -w

procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11405404 2567988 10324528 0 0 26 75 142 58 13 5 82 0 0

FÄLTBESKRIVNING för VM-läge (minne och Swap)
fält beskrivning
swpd mängden virtuellt minne som används.
gratis mängden ledigt minne.
buff mängden minne som används som buffertar.
cache mängden minne som används som cache.
inact mängden inaktivt minne. (- ett alternativ)
aktiv mängden aktivt minne. (- ett alternativ)
si mängden minne som byts in från disk (/s).
mängden minne bytte till disk (/s).

top-och htop-kommandot

TOP-och htop-kommandona ger en dynamisk realtidsvy av ett körande Linux-system. Detta inkluderar information om:

Patreon supportrar endast guider 🤓
  • inga annonser och spårning
  • djupgående guider för utvecklare och sysadmins på Opensourceflare Macau
  • gå med i min Patreon för att stödja oberoende innehållsskapare och börja läsa senaste guider:
    • hur man ställer in Redis sentinel-kluster på Ubuntu eller Debian Linux
    • hur man ställer in SSH – nycklar med YubiKey som tvåfaktorsautentisering (U2F/FIDO2)
    • hur man ställer in Mariadb Galera-kluster på Ubuntu eller Debian Linux
    • en podman-handledning för nybörjare-del i (kör Linux-behållare utan Docker 9380>
    • så här skyddar du Linux mot oseriösa USB-enheter med Usbguard
    • om din domän inte skickar e-post, Ställ in dessa DNS-inställningar för att undvika spoofing och phishing

gå med i Patreon Ukrainian

  • hårdvara och CPU-användning
  • Linux uptime
  • minne och swap utnyttjande
  • systemprocesser och mer

Observera att htop inte är installerat som standard. Men du kan enkelt installera det på CentOS, Debian, Ubuntu och andra operativsystem.

kör följande kommando:
top
htop

rapportera minnesanvändning med delat minne uppdelat proportionellt

smem-verktyget rapporterar:

  • fysisk minnesanvändning med hänsyn till delade minnessidor. Odelat minne rapporteras som USS (unik Setstorlek).
  • delat minne delas jämnt mellan de processer som delar det minnet.
  • det odelade minnet (USS) plus en process andel delat minne rapporteras som pss (Proportional Set Size).
  • USS och PSS inkluderar endast fysisk minnesanvändning. De innehåller inte minne som har bytts ut till disken.
  • minne kan rapporteras av en process, av en användare, genom kartläggning eller systemomfattande. Både textläge och grafisk utgång är tillgängliga.

man kan installera smem med kommandot apt / apt-get på en Debian / Ubuntu Linux:
sudo apt install smem
kör det enligt följande:
smem
# show whole system #
smem -w
# show meme usage about specifc user #
smem -u vivek
smem -u nginx
# get help #
man smem
smem --help

User Count Swap USS PSS RSS vivek 139 0 7593240 8210344 13017360

kontrollera minnesanvändning i Linux med GUI

System Monitor är en GUI Linux-app som visar vilka program som körs och hur mycket processortid, minne och diskutrymme som används. Vi kan öppna systemmonitorn från Aktivitetsöversikten. Tryck på Super-tangenten på tangentbordet. Du kan se dina fönster och program i översikten. Du kan också bara börja skriva för att söka i dina applikationer, till exempel systemmonitor. Fliken Resurser berättar hur mycket av datorns minne (RAM) som används. För att kontrollera vilka processer som använder mest minne: klicka på fliken Processer. Klicka på Minneskolumnrubriken för att sortera processerna enligt minnesanvändning.

se dokumentationen för mer information.

sammanfattning

du lärde dig att hitta Linux-minne (RAM) utnyttjande på Linux med hjälp av GUI och CLI-verktyg.

🐧 få de senaste tutorials på Linux, öppen källkod & DevOps via
RSS-flöde bisexuell weekly email newsletter ➔

annons

Kategori lista över Unix-och Linux-kommandon
ladda ner Chefer wget
dokumentation hjälp * mandb * man * pinfo
diskutrymme analysatorer df * duf * ncdu * pydf
filhantering katt * cp * mindre * mkdir * mer * träd
brandvägg Alpine Awall * CentOS 8 * OpenSUSE * RHEL 8 * Ubuntu 16.04 * Ubuntu 18.04 * Ubuntu 20.04
Linux skrivbordsprogram Skype * Spotify * VLC 3
moderna verktyg bat * exa
nätverksverktyg NetHogs * gräva * värd * ip • nmap
OpenVPN CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
pakethanterare apk * apt
processer hantering bg * chroot * cron * disown * fg * blickar * gtop * iotop * jobb * killall * döda * pidof * pstree • pwdx * tid * vtop
söker ag * grep * vari * som
skal builtins compgen * echo * printf
textbehandling klipp • varv
användarinformation grupper * id * lastcomm • sista * lock / libuser-lock * logname * medlemmar * användare * whoami * vem * w
WireGuard VPN Alpine * CentOS 8 * Debian 10 * brandvägg * Ubuntu 20.04

Lämna ett svar

Din e-postadress kommer inte publiceras.