hur man kontrollerar minnesanvändning i Linux
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.
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
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
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
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
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
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ä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). |
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:
- 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
- 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.
RSS-flöde bisexuell weekly email newsletter ➔
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 |