december 17, 2021

Sådan kontrolleres hukommelsesudnyttelsen i Linuk

se alle GNU/Linuk relaterede ofte stillede spørgsmål

hvordan kontrollerer jeg hukommelsesudnyttelsen i Linuk ved hjælp af kommandolinje-og GUI-indstillinger?
vi har fysisk RAM såsom 16GB og bytte hukommelse. Skift hukommelse er intet andet end diskplads, der gør det muligt for din computer at køre flere applikationer samtidigt, end der passer ind i systemhukommelsen (RAM). Denne side forklarer forskellige kommandoer for at kontrollere hukommelsesforbrug og-udnyttelse i linea ved hjælp af kommandolinjeværktøjer og GUI-værktøjer.

annonce

kommandoer til at kontrollere hukommelsesudnyttelse i Linuk

dit Linuksystem skal køre på et optimalt niveau. Hukommelse spiller en afgørende rolle i et system. En udvikler eller erfaren sysadmin skal kende den samlede mængde gratis og brugt fysisk, inklusive byttehukommelse på serveren. Det ville være bedst, hvis du også holdt øje med buffere og cacher, der blev brugt af kernen.

filen /proc/meminfo

filen /proc/meminfo rapporterer statistik om hukommelsesforbrug. Brug kommandoen cat command / less eller kommandoen grep command / egrep som følger:
cat /proc/meminfo
more /proc/meminfo


hver linje i/proc / meminfo-filen består af et parameternavn efterfulgt af et kolon, parameterværdien og en optionsenhed. For eksempel “kB”.

forståelse hukommelse udnyttelse parametre

felter beskrivelse tabel
Parameter beskrivelse
MemTotal samlet brugbar RAM (dvs., fysisk RAM minus et par reserverede bits og kernen binær kode).
MemFree summen af Lavfri+Højfri.
MemAvailable (siden Linuks 3.14) et skøn over, hvor meget hukommelse der er tilgængelig til at starte nye applikationer uden at bytte.
buffere relativt midlertidig opbevaring til rå diskblokke, der ikke skulle blive enormt store (20 MB eller deromkring).
cachelagret in-memory cache for filer læst fra disken (siden cache). Inkluderer ikke byttet.
hukommelse, der engang blev byttet ud, byttes tilbage, men er stadig også i byttefilen.
Aktiv hukommelse, der er blevet brugt for nylig og normalt ikke genvundet, medmindre det er absolut nødvendigt.
inaktiv hukommelse, der er blevet brugt mindre for nylig. Det er mere berettiget til at blive inddrevet til andre formål.
HighTotal samlet mængde highmem. Highmem er al hukommelse over ~860 MB fysisk hukommelse. Highmem-områder er til brug af brugerrumsprogrammer eller til sidecachen. Kernen skal bruge tricks til at få adgang til denne hukommelse, hvilket gør det langsommere at få adgang end lavmem.
HighFree mængde gratis highmem.
Lavfri mængde gratis lavmem.
bytteplads samlet mængde bytteplads til rådighed.
Byttefri mængde bytteplads, der i øjeblikket er ubrugt.
Dirty hukommelse, som venter på at blive skrevet tilbage til disken.
skrivning hukommelse, der aktivt skrives tilbage til disken.
AnonPages ikke-fil bakkes sider kortlagt i bruger-plads side tabeller.
kortlagt filer, der er kortlagt i hukommelsen (med mmap(2)), såsom biblioteker.
Shmem mængde hukommelse, der forbruges i tmpfs(5) filsystemer.
KReclaimable kerneallokeringer, som kernen vil forsøge at genvinde under hukommelsestryk. Inkluderer SReclaimable (nedenfor), og andre direkte tildelinger med en shrinker.
Slab in-kernel datastrukturer cache. (Se slabinfo (5).)
SReclaimable del af Slab, der kan genvindes, såsom caches.
SUnreclaim en del af pladen, der ikke kan genvindes ved hukommelsestryk.
KernelStack mængde hukommelse allokeret til kernel stakke.
PageTables mængde hukommelse dedikeret til det laveste niveau af sidetabeller.
Nfs_ustable NFS-sider sendt til serveren, men endnu ikke forpligtet til stabil opbevaring.
Bounce hukommelse bruges til blok enhed “bounce buffere”.
Skrivebacktmp hukommelse, der bruges af FUSE til midlertidige skrivebackbuffere.
CommitLimit dette er den samlede mængde hukommelse, der i øjeblikket er tilgængelig, der skal tildeles på systemet, udtrykt i kilobyte. Denne grænse overholdes kun, hvis streng overcommit-regnskab er aktiveret (tilstand 2 i /proc/sys/vm/overcommit_memory). Grænsen beregnes efter formlen beskrevet under /proc/sys/vm/overcommit_memory.
Committed_AS den mængde hukommelse, der i øjeblikket er tildelt på systemet. Den engagerede hukommelse er en sum af al den hukommelse, der er tildelt ved processer, selvom den endnu ikke er blevet “brugt” af dem. En proces, der tildeler 1 GB hukommelse(ved hjælp af malloc (3) eller lignende), men kun berører 300 MB af denne hukommelse, vises som kun at bruge 300 MB hukommelse, selvom den har adressepladsen tildelt til hele 1 GB. Denne 1GB er hukommelse, som er blevet” forpligtet ” til af VM og kan bruges til enhver tid af tildelingsapplikationen. Med streng overcommit aktiveret på systemet (mode 2 i /proc/sys/vm/overcommit_memory), vil tildelinger, der overstiger CommitLimit, ikke være tilladt. Dette er nyttigt, hvis man skal garantere, at processer ikke mislykkes på grund af manglende hukommelse, når denne hukommelse er blevet tildelt.
VmallocTotal Samlet størrelse af vmalloc hukommelsesområde.
Vmallocused mængde af vmalloc område, der anvendes. Siden Linuk 4.4 beregnes dette felt ikke længere og er hårdt kodet som 0. Se/proc / vmallocinfo.
Vmallocchunk største sammenhængende blok af vmalloc område, som er gratis. Siden Linuks 4.4 Er dette felt ikke længere beregnet og er hårdt kodet som 0. Se/proc / vmallocinfo.
Lasyfree viser mængden af hukommelse markeret med madvise(2) MADV_FREE.
AnonHugePages ikke-fil bakkes store sider kortlagt i bruger-plads sidetabeller.
ShmemHugePages hukommelse brugt af delt hukommelse (shmem) og tmpfs (5) tildelt med store sider
ShmemPmdMapped delt hukommelse kortlagt i brugerrum med store sider.
CmaTotal samlede CMA (sammenhængende Memory Allocator) sider.
CmaFree gratis CMA (sammenhængende Memory Allocator) sider.
HugePages_Total størrelsen af puljen af store sider.
HugePages_Free antallet af store sider i puljen, der endnu ikke er tildelt.
HugePages_Rsvd dette er antallet af store sider, som der er forpligtet til at allokere fra puljen, men der er endnu ikke foretaget nogen tildeling. Disse reserverede enorme sider garanterer, at en applikation vil være i stand til at allokere en enorm side fra puljen af enorme sider på fejltid.
HugePages_Surap dette er antallet af store sider i puljen over værdien i /proc/sys/vm/nr_hugepages. Det maksimale antal overskydende enorme sider styres af / proc/sys/vm / nr_overcommit_hugepages.
Hugepagesstørrelse størrelsen af store sider.
DirectMap4k antal bytes RAM lineært kortlagt af kerne i 4KB sider.
DirectMap4M antal bytes RAM lineært kortlagt af kerne i 4MB sider.
DirectMap2M antal bytes RAM lineært kortlagt af kerne i 2MB sider.
DirectMap1G H86 med CONFIG_H86_64 og CONFIG_H86_DIRECT_GBPAGES aktiveret.

vi kan filtrere filen ud ved hjælp af grep-kommandoen eller egrep-kommandoen som følger:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
proc meminfo file

brug af gratis kommando til at kontrollere brugt og fri hukommelsesudnyttelse

output fra /proc/meminfo er kraftfuld, men ikke brugervenlig. Derfor skal vi bruge den gratis kommando. Kommandoen free viser mængden af ledig og brugt hukommelse i systemet. For eksempel:
free
vil du se menneskeligt læsbart output? Prøv:
free -h
free --human

prøve udgange:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
de viste kolonner er som følger:
kolonne beskrivelse
total samlet installeret hukommelse
brugt brugt hukommelse (beregnet som total – free-buffere-cache)
gratis ubrugt hukommelse (MemFree og Byttefri i / proc / meminfo)
delt hukommelse bruges mest af tmpfs (Shmem in / proc / meminfo)
buffere hukommelse brugt af kernel buffere (buffere i / proc / meminfo)
cache hukommelse brugt af siden cache og plader (Cached og SReclaimable i / proc / meminfo)
buff / cache summen af buffere og cache
tilgængelig estimering af, hvor meget hukommelse der er tilgængelig til start af nye applikationer uden at bytte.

vi kan gentage udskrivning gratis kommando output hver n sekunder. Udskriv for eksempel output hvert 5. sekund og afslut efter ti sådanne gentagelser (tæller) på skærmen:
free -s 5 -c 10
vi kan styre output af fri kommando som følger:
free
free -k
free -g
free -m

styring af gratis kommandoudgang
mulighed Vis output i
-b, –bytes
–kilo kilobyte
–mega megabyte
–giga gigabyte
–tera terabyte
–peta petabyte
-k, –kibi kibibytes
-m, –mebi mebibytes
-g, — gibi gibibytes
–tebi tebibytes
–pebi pebibytes

kommandoen vmstat

kommandoen vmstat er kraftig, og den viser oplysninger om f. eks:

  • processer
  • hukommelse
  • Personsøgning
  • Bloker IO
  • fælder
  • diske
  • CPU-aktivitet

Åbn terminalen og skriv følgende kommando:
vmstat
Prøvesession fra mit Ubuntu-skrivebord:

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

Pass-V for at se bred output 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

feltbeskrivelse for VM-tilstand (hukommelse og bytte)
felt beskrivelse
den anvendte mængde virtuel hukommelse.
gratis mængden af tomgangshukommelse.
buff mængden af hukommelse, der bruges som buffere.
cache mængden af hukommelse, der bruges som cache.
inact mængden af inaktiv hukommelse. (- en mulighed)
aktiv mængden af aktiv hukommelse. (- en mulighed)
si mængde hukommelse byttet ind fra disk (/s).
mængde hukommelse byttet til disk (/s).

kommandoen top og htop

kommandoerne top og htop giver en dynamisk realtidsvisning af et kørende system. Dette omfatter oplysninger om:

Patreon supportere kun guider 🤓
  • ingen annoncer og sporing
  • dybdegående vejledninger til udviklere og sysadmins på Opensourceflare Porter
  • Deltag i min Patreon for at støtte uafhængige indholdsskabere og begynde at læse de nyeste guider:
    • Sådan konfigureres Redis sentinel cluster på Ubuntu eller Debian-Linuk
    • Sådan konfigureres SSH – nøgler med YubiKey som tofaktorautentificering (U2F/FIDO2)
    • Sådan konfigureres Mariadb Galera cluster på Ubuntu eller Debian-Linuk
    • en podman-tutorial til begyndere-del I (Kør uden Docker og i daemonless mode)
    • Sådan beskytter du mod useriøse USB-enheder ved hjælp af Usbguard
    • hvis dit domæne ikke sender e-mail, skal du indstille disse DNS-indstillinger for at undgå spoofing og phishing

Slut dig til Patreon karrus

  • udstyr og CPU-udnyttelse
  • Linuks oppetid
  • hukommelse og bytte udnyttelse
  • systemprocesser og mere

bemærk, at htop ikke er installeret som standard. Men du kan nemt installere det på CentOS, Debian, Ubuntu og andre operativsystemer.

Kør følgende kommando:
top
htop

rapporter hukommelsesforbrug med delt hukommelse opdelt proportionalt

smem-værktøjet rapporterer:

  • fysisk hukommelsesforbrug under hensyntagen til delte hukommelsessider. Ikke-delt hukommelse rapporteres som USS (unik Sætstørrelse).
  • delt hukommelse fordeles jævnt mellem de processer, der deler denne hukommelse.
  • den ikke-delte hukommelse (USS) plus en process andel af delt hukommelse rapporteres som PSS (Proportional Sæt størrelse).
  • USS og PSS omfatter kun fysisk hukommelsesforbrug. De omfatter ikke hukommelse, der er blevet byttet ud til disk.
  • hukommelse kan rapporteres af en proces, af en bruger, ved kortlægning eller hele systemet. Både teksttilstand og grafisk output er tilgængelige.

man kan installere smem ved hjælp af kommandoen apt/apt-get på en Debian/Ubuntu:
sudo apt install smem
kør det som følger:
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

ved hjælp af GUI

System Monitor er en GUI-app, der viser dig, hvilke programmer der kører, og hvor meget processortid, hukommelse og diskplads der bruges. Vi kan åbne systemmonitoren fra aktivitetsoversigten. Tryk på Super-tasten på dit tastatur. Du kan se dine vinduer og applikationer i oversigten. Du kan også bare begynde at skrive for at søge i dine applikationer, f.eks. Fanen Ressourcer fortæller dig, hvor meget af din computers hukommelse (RAM) der bruges. For at kontrollere, hvilke processer der bruger mest hukommelse: Klik på fanen Processer. Klik på kolonneoverskriften hukommelse for at sortere processerne i henhold til hukommelsesbrug.

se dokumentation for mere info.

opsummering

du lærte, hvordan du finder RAM-hukommelse (RAM) – udnyttelse ved hjælp af GUI-og CLI-værktøjer.

🐧 få de nyeste vejledninger på , Open Source & DevOps via
RSS feed til ugentlig e-mail nyhedsbrev ➔

reklame

Kategori liste over kommandoer
Hent ledere vGet
dokumentation hjælp * mandb * man * pinfo
diskpladsanalysatorer df * DUF * ncdu * pydf
filhåndtering kat * cp * mindre * mkdir * mere * træ
Brandvæg Alperne • CentOS 8 • openSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 * Ubuntu 20.04
pc-apps Skype * Spotify * VLC 3
moderne forsyningsselskaber bat
Netværk Utilities NetHogs * dig * host * ip * nmap
OpenVPN CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
pakkehåndtering apk * apt
processer Ledelse bg * chroot * cron * fornægte * fg * blikke * gtop * iotop * job * killall • dræbe * pidof * pstree • PV * tid * vtop
søger ag • grep • hvor er • hvilken
Shell builtins compgen * echo * printf
tekstbehandling klip • rev
Brugerinformation grupper * id * lastcomm • sidste * lid / libuser-lid * logname * medlemmer * brugere * Hvem * m
VPN Alpine • CentOS 8 • Debian 10 • Ubuntu 20.04

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.