hvordan sjekke minneutnyttelse I Linux
Hvordan sjekker jeg minneutnyttelse I Linux ved hjelp av kommandolinje og GUI-alternativer?
vi har fysisk RAM SOM 16GB og bytte minne. Swap-minne er ikke noe annet enn diskplass som gjør At Linux-datamaskinen kan kjøre flere programmer samtidig enn det som passer inn i systemminnet (RAM). Denne siden forklarer ulike kommandoer for å sjekke minnebruk og utnyttelse I Linux ved hjelp av kommandolinje – og GUI-verktøy.
Kommandoer for å sjekke minneutnyttelse I Linux
Linux-systemet ditt må kjøre på et optimalt nivå. Minne spiller en kritisk rolle I Et Linux-system. En utvikler eller erfaren sysadmin må vite den totale mengden gratis og brukt fysisk, inkludert bytte minne i serveren. Det ville være best hvis du holdt øye med buffere og cacher som brukes av kjernen også.
/proc/meminfo-filen
/proc / meminfo-filen rapporterer statistikk om minnebruk På Linux. Bruk kommandoen cat / less kommando eller grep kommando / egrep kommando som følger på Linux-boksen:cat /proc/meminfo
more /proc/meminfo
Hver linje i/proc / meminfo-filen består av et parameternavn, etterfulgt av et kolon, parameterverdien og en alternativ måleenhet. For eksempel, «kB».
Forstå minneutnyttelsesparametere
Parameter | Beskrivelse |
---|---|
MemTotal | Total brukbar RAM (dvs., fysisk RAM minus noen få reserverte biter og kjernen binær kode). |
MemFree | summen Av LowFree+HighFree. |
MemAvailable | (siden Linux 3.14) et estimat av hvor mye minne som er tilgjengelig for å starte nye programmer, uten å bytte. |
Buffere | Relativt midlertidig lagring for rå diskblokker som ikke skal bli enormt store(20MB eller så). |
Bufret | hurtigbuffer i minnet for filer som leses fra disken(sidebufferen). Inkluderer Ikke SwapCached. |
SwapCached | Minne som en gang ble byttet ut, byttes tilbake, men er fortsatt også i byttefilen. |
Aktiv | Minne som har blitt brukt mer nylig og vanligvis ikke gjenvunnet med mindre det er absolutt nødvendig. |
Inaktivt | Minne som har blitt mindre nylig brukt. Det er mer kvalifisert til å bli gjenvunnet til andre formål. |
HighTotal | Total mengde highmem. Highmem er alt minne over ~860 MB fysisk minne. Highmem områder er for bruk av bruker-plass programmer, eller for siden cache. Kjernen må bruke triks for å få tilgang til dette minnet, noe som gjør det tregere å få tilgang enn lowmem. |
HighFree | Mengde gratis highmem. |
LowFree | Mengde gratis lowmem. |
SwapTotal | Total mengde bytteplass tilgjengelig. |
SwapFree | mengde bytteplass som for øyeblikket er ubrukt. |
Dirty | Minne som venter på å bli skrevet tilbake til disken. |
Writeback | Minne som aktivt skrives tilbake til disken. |
AnonPages | ikke-filstøttede sider kartlagt i sidetabeller for brukerplass. |
Kartlagt | Filer som er kartlagt i minnet (med mmap(2)), for eksempel biblioteker. |
Shmem | mengde minne som forbrukes i tmpfs (5) filsystemer. |
KReclaimable | kernel allokeringer som kjernen vil forsøke å gjenvinne under minne press. Inkluderer SReclaimable (under), og andre direkte tildelinger med en shrinker. |
Slab | hurtigbuffer for Datastrukturer i kjernen. (Se slabinfo (5).) |
SReclaimable | Del Av Skive, som kan gjenvinnes, for eksempel cacher. |
SUnreclaim | Del Av Platen, som ikke kan gjenvinnes på minnetrykk. |
KernelStack | mengde minne allokert til kjernestabler. |
PageTables | mengde minne dedikert til det laveste nivået av sidetabeller. |
NFS_Unstable | nfs-sider sendt til serveren, men ikke forpliktet til stabil lagring. |
Bounce | Minne brukt til blokkenhet «bounce buffere». |
WritebackTmp | Minne som BRUKES av FUSE for midlertidige writeback-buffere. |
CommitLimit | dette er den totale mengden minne som er tilgjengelig for å bli tildelt på systemet, uttrykt i kilobyte. Denne grensen overholdes bare hvis streng overcommit-regnskap er aktivert (modus 2 i / proc / sys / vm / overcommit_memory). Grensen beregnes i henhold til formelen beskrevet under / proc/sys/vm / overcommit_memory. |
Committed_AS | mengden minne som for tiden er tildelt på systemet. Det engasjerte minnet er summen av alt minnet som har blitt tildelt av prosesser, selv om det ikke har blitt» brukt » av dem fra og med. En prosess som tildeler 1 GB minne (ved hjelp av malloc(3) eller lignende), men berører BARE 300 MB av det minnet, vises som bare 300 MB minne, selv om det har adresseplassen som er tildelt for HELE 1 GB. Denne 1gb er minne som har blitt «forpliktet» TIL AV VM og kan brukes når som helst ved tildelingsprogrammet. Med streng overcommit aktivert på systemet (modus 2 i / proc / sys / vm / overcommit_memory), vil tildelinger som overstiger CommitLimit ikke tillates. Dette er nyttig hvis man trenger å garantere at prosesser ikke vil mislykkes på grunn av mangel på minne når minnet har blitt tildelt. |
VmallocTotal | Total størrelse på vmalloc-minneområde. |
VmallocUsed | Mengde vmalloc-område som brukes. Siden Linux 4.4 er dette feltet ikke lenger beregnet, og er hardkodet som 0. Se / proc / vmallocinfo. |
Vmallocchunk | Største sammenhengende blokk av vmalloc-området som er gratis. Siden Linux 4.4 er dette feltet ikke lenger beregnet og er hardkodet som 0. Se / proc / vmallocinfo. |
LazyFree | Viser mengden minne merket av madvise (2) MADV_FREE. |
AnonHugePages | ikke-fil støttet store sider kartlagt i bruker-plass sidetabeller. |
ShmemHugePages | Minne brukt av delt minne (shmem) og tmpfs (5) tildelt med store sider |
ShmemPmdMapped | Delt minne kartlagt i bruker plass med store sider. |
CmaTotal | Totalt cma (Sammenhengende Minnetildeler) sider. |
CmaFree | gratis cma (Sammenhengende Minneallokator) sider. |
HugePages_Total | størrelsen på bassenget av store sider. |
HugePages_Free | antall store sider i bassenget som ennå ikke er tildelt. |
HugePages_Rsvd | dette er antall store sider som en forpliktelse til å tildele fra bassenget er gjort, men ingen tildeling er ennå gjort. Disse reserverte store sidene garanterer at et program vil kunne tildele en stor side fra bassenget av store sider ved feiltid. |
HugePages_Surap | dette er antall store sider i bassenget over verdien i /proc / sys/vm / nr_hugepages. Maksimalt antall overskudd store sider styres av /proc/sys/vm / nr_overcommit_hugepages. |
Hugepagesize | størrelsen på store sider. |
DirectMap4k | Antall byte RAM lineært kartlagt av kjernen i 4kb sider. |
DirectMap4M | Antall byte RAM lineært kartlagt av kjernen I 4 MB sider. |
DirectMap2M | Antall byte RAM lineært kartlagt av kjernen I 2 MB sider. |
DirectMap1G | x86 med CONFIG_X86_64 og CONFIG_X86_DIRECT_GBPAGES aktivert. |
vi kan filtrere ut filen ved hjelp av grep kommandoen eller egrep kommandoen som følger:grep -E --color 'Mem|Cache|Swap' /proc/meminfo
Bruke gratis kommando for å sjekke brukt og ledig minneutnyttelse
utgangen av /proc / meminfo er kraftig, men ikke brukervennlig. Derfor må vi bruke den frie kommandoen. Den frie kommandoen viser mengden ledig og brukt minne I Linux-systemet. For eksempel:free
Vil du se menneskelig lesbar utgang? Prøv:free -h
free --human
Eksempel på utganger:
total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
Kolonne | Beskrivelse |
---|---|
totalt | totalt installert minne |
brukt | Brukt minne (beregnet som total-free-buffers-cache) |
gratis | Ubrukt minne (MemFree og SwapFree i / proc / meminfo) |
delt | Minne brukes mest av tmpfs (Shmem i / proc / meminfo) |
buffere | Minne som brukes av kjernebuffere (Buffere i / proc / meminfo) |
cache | Minne som brukes av sidebufferen og plater (Cached og SReclaimable i / proc / meminfo) |
buff / cache | Summen av buffere og cache |
tilgjengelig | Estimering av hvor mye minne som er tilgjengelig for å starte nye applikasjoner, uten å bytte. |
vi kan gjenta utskrift gratis kommandoutgang hvert n sekund. For eksempel, skriv ut hvert 5. sekund og avslutt etter ti slike repetisjoner (teller) på skjermen:free -s 5 -c 10
Vi kan styre produksjonen av fri kommando som følger:free
free -k
free -g
free -m
Alternativ | Vis utdata i |
---|---|
-b, –byte | |
–kilo | kilobyte |
–mega | megabyte |
–giga | gigabyte |
–tera | terabyte |
–peta | petabyte |
-k, –kibi | kibibytes |
-m, –mebi | mebibytes |
-g, — gibi | gibibytes |
–tebi | tebibytes |
–pebi | pebibytes |
vmstat-kommandoen
vmstat-kommandoen er kraftig, og den viser informasjon Om Linux-maskinvare, for eksempel:
- Prosesser
- Minne
- Sideveksling
- Blokker IO
- Feller
- Disker
- CPU-aktivitet
Åpne terminalen Og skriv inn følgende kommando:vmstat
Eksempel økt fra 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
Pass-w for å se bred utgang på skjermen: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
Felt | Beskrivelse |
---|---|
swpd | mengden virtuelt minne som brukes. |
gratis | mengden ledig minne. |
buff | mengden minne som brukes som buffere. |
cache | mengden minne som brukes som cache. |
inact | mengden inaktivt minne. (- et alternativ) |
aktiv | mengden aktivt minne. (- et alternativ) |
si | mengde minne byttet inn fra disk (/s). |
så | mengde minne byttet til disk (/s). |
topp-og htop-kommando
topp-og htop-kommandoene gir en dynamisk sanntidsvisning av Et kjørende Linux-system. Dette inkluderer informasjon om:
- Ingen annonser og sporing
- dyptgående guider for utviklere og sysadmins På Opensourceflare✨
- Bli med I Min Patreon for å støtte uavhengige innholdsskapere og begynn å lese de nyeste veiledningene:
- hvordan sette Opp Redis sentinel cluster På Ubuntu Eller Debian Linux
- Hvordan Sette OPP SSH-Nøkler Med YubiKey Som tofaktorautentisering (U2F/FIDO2)
- hvordan sette Opp Mariadb Galera cluster På Ubuntu Eller Debian Linux
- en podman – opplæring for nybegynnere-del I (kjør Linux-beholdere uten Docker Slik Beskytter Du Linux mot rogue usb-enheter ved Hjelp Av Usbguard
- Hvis Domenet DITT IKKE SENDER E-POST, Må Du Angi Disse Dns-Innstillingene for å unngå spoofing og phishing
- Maskinvare og CPU utnyttelse
- Linux oppetid
- Minne og bytte utnyttelse
- systemprosesser og mer
vær oppmerksom på at htop ikke er installert som standard. Men du kan enkelt installere Den på CentOS, Debian, Ubuntu og andre operativsystemer.
Kjør følgende kommando:top
htop
Rapporter minnebruk med delt minne delt proporsjonalt
smem-verktøyet rapporterer:
- Fysisk minnebruk tar hensyn til delte minnesider. Unshared minne er rapportert SOM USS (Unik Set Size).
- Delt minne deles jevnt mellom prosessene som deler dette minnet.
- uss (unshared memory) pluss en prosess andel delt minne rapporteres SOM Pss (Proporsjonal Set Size).
- USS og PSS inkluderer bare fysisk minnebruk. De inkluderer ikke minne som har blitt byttet ut til disk.
- Minne kan rapporteres av en prosess, av en bruker, ved tilordning eller hele systemet. Både tekstmodus og grafisk utgang er tilgjengelig.
man kan installere smem ved hjelp av apt kommandoen / apt-get kommandoen På En Debian / Ubuntu Linux:sudo apt install smem
Kjø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
Kontrollere minneutnyttelse I Linux ved HJELP AV GUI
System Monitor er EN GUI Linux-app som viser deg hvilke programmer som kjører og hvor mye prosessortid, minne og diskplass som brukes. Vi kan åpne Systemmonitoren fra Aktivitetsoversikten. Trykk på super-tasten på tastaturet. Du kan se dine vinduer og programmer i oversikten. Du kan også bare begynne å skrive for å søke i programmene dine, for Eksempel System Monitor. Kategorien Ressurser forteller deg hvor mye av datamaskinens minne (RAM) som brukes. Slik kontrollerer du hvilke prosesser som bruker mest minne: Klikk På Prosesser-fanen. Klikk Kolonneoverskriften Minne for å sortere prosessene i henhold til minnebruk.
se dokumentasjonen for mer informasjon.
Oppsummering
du lærte Å finne Linux minne (RAM) utnyttelse På Linux VED HJELP AV GUI og cli verktøy.
RSS-feed ➔ Ukentlig nyhetsbrev ➔
Kategori | Liste Over Unix-og Linux-kommandoer |
---|---|
last ned ledere | wget |
Dokumentasjon | hjelp * mandb * man * pinfo |
Diskplass analysatorer | df * duf * ncdu * pydf |
Filbehandling | cat * cp * mindre * mkdir * mer * tre |
Brannmur | Alpine Awall • CentOS 8 • OPENSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Skrivebordsprogrammer | Skype * Spotify * VLC 3 |
Moderne verktøy | bat • exa |
Nettverksverktøy | |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Pakkebehandling | apk * apt |
Prosesser Ledelse | bg * chroot * cron * fornekte • fg * blikk • gtop * iotop * jobber * killall * drepe * pidof * pstree * pwdx * tid * vtop |
Søker | ag * grep * whereis * which |
Shell builtins | compgen * ekko * printf |
tekstbehandling | klipp • rev |
Brukerinformasjon | grupper * id * lastcomm • siste * lid / libuser-lid • logname * medlemmer * brukere * whoami * hvem * w |
WireGuard VPN | Alpint • CentOS 8 • Debian 10 • Brannmur • Ubuntu 20.04 |