Hoe controleer ik het geheugengebruik in Linux
Hoe controleer ik het geheugengebruik in Linux met behulp van command-line en GUI opties?
we hebben fysieke RAM zoals 16GB en swap geheugen. Swap-geheugen is niets anders dan schijfruimte die uw Linux-computer in staat stelt om meer applicaties tegelijkertijd te draaien dan in het systeemgeheugen (RAM) past. Deze pagina legt verschillende commando ‘ s uit om het geheugengebruik en het gebruik in Linux te controleren met behulp van command-line en GUI tools.
commando ‘ s om het geheugengebruik in Linux
te controleren uw Linux systeem moet op een optimaal niveau draaien. Geheugen speelt een cruciale rol in een Linux systeem. Een ontwikkelaar of doorgewinterde systeembeheerder moet de totale hoeveelheid vrije en gebruikte fysieke gegevens kennen, inclusief wisselgeheugen op de server. Het zou het beste zijn als je ook de buffers en caches van de kernel in de gaten hield.
het bestand/proc / meminfo
het bestand/proc / meminfo rapporteert statistieken over geheugengebruik op Linux. Gebruik de cat command / less command of grep command / egrep command als volgt op je Linux box:cat /proc/meminfo
more /proc/meminfo
te controleren elke regel van het/proc / meminfo bestand bestaat uit een parameternaam, gevolgd door een dubbele punt, de parameterwaarde en een optieeenheid van meting. Bijvoorbeeld, “kB”.
parameters voor geheugengebruik
Parameter | beschrijving |
---|---|
MemTotal | totaal bruikbaar RAM (d.w.z., fysiek RAM minus een paar gereserveerde bits en de kernel binaire code). |
MemFree | de som van LowFree+HighFree. |
MemAvailable | (sinds Linux 3.14) een schatting van hoeveel geheugen beschikbaar is voor het starten van nieuwe applicaties, zonder te ruilen. |
Buffers | relatief tijdelijke opslag voor ruwe schijfblokken die niet enorm groot zouden moeten worden (20MB of zo). |
cache | in-memory cache voor bestanden die van de schijf worden gelezen (de paginacache). Bevat geen SwapCached. |
SwapCached | geheugen dat eenmaal is uitgewisseld, wordt terug gewisseld, maar bevindt zich nog steeds in het wisselbestand. |
actief | geheugen dat recenter is gebruikt en gewoonlijk niet wordt teruggewonnen, tenzij het absoluut noodzakelijk is. |
Inactief | geheugen dat minder recent is gebruikt. Het komt meer in aanmerking om voor andere doeleinden te worden teruggevorderd. |
Hoogtotaal | totaal bedrag aan hoogmem. Highmem is al het geheugen boven ~ 860MB fysiek geheugen. Highmem gebieden zijn voor gebruik door user-space programma ‘ s, of voor de pagina cache. De kernel moet trucs gebruiken om toegang te krijgen tot dit geheugen, waardoor het trager is om toegang te krijgen dan lowmem. |
HighFree | hoeveelheid vrije highmem. |
LowFree | hoeveelheid vrij lowmem. |
Swaptotaal | totaal beschikbare swapruimte. |
SwapFree | hoeveelheid swap-ruimte die momenteel niet wordt gebruikt. |
Vuil | geheugen dat wacht om terug geschreven te worden naar de schijf. |
Writeback | geheugen dat actief terug wordt geschreven naar de schijf. |
AnonPages | pagina ‘ s zonder bestandsbacked die zijn toegewezen aan paginatabellen met gebruikersruimte. |
toegewezen | bestanden die in het geheugen zijn toegewezen (met mmap (2)), zoals bibliotheken. |
Shmem | hoeveelheid geheugen verbruikt in tmpfs (5) bestandssystemen. |
KReclaimable | Kerneltoewijzingen die de kernel zal proberen terug te winnen onder geheugendruk. Inclusief SReclaimable (hieronder), en andere directe toewijzingen met een krimp. |
Slab | in-kernel datastructuren cache. (Zie slabinfo (5).) |
SReclaimable | deel van de Slab, dat kan worden teruggewonnen, zoals caches. |
SUnreclaim | deel van de plak, dat niet kan worden teruggewonnen op geheugendruk. |
KernelStack | hoeveelheid geheugen toegewezen aan kernelstacks. |
PageTables | hoeveelheid geheugen toegewezen aan het laagste niveau van paginatabellen. |
NFS_Unstable | NFS-pagina ‘ s verzonden naar de server, maar nog niet vastgelegd voor stabiele opslag. |
Bounce | geheugen gebruikt voor “bounce-buffers”van blokapparaat. |
Writebacktmp | geheugen gebruikt door FUSE voor tijdelijke writeback buffers. |
CommitLimit | dit is de totale hoeveelheid geheugen die momenteel beschikbaar is voor het systeem, uitgedrukt in kilobytes. Deze limiet wordt alleen aangehouden als strikte overcommit accounting is ingeschakeld (mode 2 in /proc/sys/vm/overcommit_memory). De limiet wordt berekend volgens de formule beschreven onder /proc/sys/vm/overcommit_memory. |
Commited_as | de hoeveelheid geheugen die momenteel aan het systeem is toegewezen. Het gecommit geheugen is een som van al het geheugen dat door processen is toegewezen, zelfs als het nog niet door hen is “gebruikt”. Een proces dat 1 GB geheugen toewijst (met malloc (3) of iets dergelijks), maar slechts 300 MB van dat geheugen aanraakt, zal verschijnen als het gebruik van slechts 300 MB geheugen, zelfs als het de adresruimte toegewezen heeft voor de gehele 1 GB. Deze 1GB is geheugen waaraan de VM heeft” gecommit ” en dat op elk moment door de toewijzingstoepassing kan worden gebruikt. Met strict overcommit ingeschakeld op het systeem (mode 2 in /proc/sys/vm/overcommit_memory), worden toewijzingen die de CommitLimit zouden overschrijden niet toegestaan. Dit is handig als men moet garanderen dat processen niet mislukken als gevolg van gebrek aan geheugen zodra dat geheugen met succes is toegewezen. |
Vmalloctotaal | Totale grootte van het vmalloc-geheugengebied. |
Vmalloc gebruikt | hoeveelheid vmalloc oppervlakte die wordt gebruikt. Sinds Linux 4.4 wordt dit veld niet meer berekend en is het hard gecodeerd als 0. Zie / proc / vmallocinfo. |
VmallocChunk | grootste aaneengesloten blok van vmalloc-gebied dat vrij is. Sinds Linux 4.4 wordt dit veld niet meer berekend en is het hard gecodeerd als 0. Zie / proc / vmallocinfo. |
LazyFree | toont de hoeveelheid geheugen gemarkeerd door madvise (2) MADV_FREE. |
AnonHugePages | Grote pagina ‘ s die niet door een bestand worden ondersteund en zijn toegewezen aan paginatabellen met gebruikersruimte. |
ShmemHugePages | geheugen gebruikt door shared memory (shmem) en tmpfs (5) toegewezen met enorme pagina ‘s |
ShmemPmdMapped | gedeeld geheugen toegewezen aan gebruikersruimte met enorme pagina’ s. |
CmaTotal | totaal CMA (Contiguous Memory Allocator) pagina ‘ s. |
CMA-vrije | CMA-pagina ‘ s (Contiguous Memory Allocator). |
HugePages_Total | de grootte van de pool van enorme pagina ‘ s. |
HugePages_Free | het aantal enorme pagina ‘ s in de pool die nog niet zijn toegewezen. |
HugePages_Rsvd | dit is het aantal enorme pagina ‘ s waarvoor een toewijzing uit de pool is gedaan, maar nog niet is toegewezen. Deze gereserveerde enorme pagina ’s garanderen dat een toepassing in staat zal zijn om een enorme pagina toe te wijzen uit de pool van enorme pagina’ s op fouttijd. |
HugePages_Surap | dit is het aantal grote pagina ‘ s in de pool boven de waarde in /proc/sys/vm/nr_hugepages. Het maximum aantal overtollige Grote pagina ‘ s wordt gecontroleerd door /proc/sys/vm/nr_overcommit_hugepages. |
Hugepagesize | de grootte van enorme pagina ‘ s. |
DirectMap4k | Aantal bytes RAM lineair toegewezen door de kernel in 4KB-pagina ‘ s. |
DirectMap4M | Aantal bytes RAM lineair toegewezen door kernel in 4MB pagina ‘ s. |
DirectMap2M | Aantal bytes RAM lineair toegewezen door kernel in 2 MB pagina ‘ s. |
DirectMap1G | x86 met CONFIG_X86_64 en CONFIG_X86_DIRECT_GBPAGES ingeschakeld. |
we kunnen het bestand filteren met het grep commando of egrep commando als volgt:grep -E --color 'Mem|Cache|Swap' /proc/meminfo
Free commando gebruiken om gebruikt en vrij geheugengebruik
te controleren de uitvoer van/proc / meminfo is krachtig, maar niet gebruiksvriendelijk. Daarom moeten we het gratis commando gebruiken. Het free commando toont de hoeveelheid vrij en gebruikt geheugen in het Linux systeem. Bijvoorbeeld::free
wil je menselijk leesbare output zien? Proberen:free -h
free --human
Voorbeelduitgangen:
total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
Kolom | Beschrijving |
---|---|
totaal | Totaal geïnstalleerde geheugen |
gebruikt | Gebruikt geheugen (berekend als totaal – gratis – buffers – cache) |
gratis | Ongebruikt geheugen (MemFree en SwapFree in /proc/meminfo) |
gedeelde | Geheugen meestal gebruikt door tmpfs (Shmem in /proc/meminfo) |
buffers | Geheugen dat wordt gebruikt door de kernel buffers (Buffers in /proc/meminfo) |
cache | Geheugen wordt gebruikt door de pagina cache en platen (gecached en SReclaimable in / proc / meminfo) |
buff / cache | som van buffers en cache |
beschikbaar | schatting van hoeveel geheugen beschikbaar is voor het starten van nieuwe toepassingen, zonder te ruilen. |
we kunnen het afdrukken van gratis Commando uitvoer Elke n seconden herhalen. Bijvoorbeeld, print output elke 5 seconden en sluit af na tien van dergelijke herhalingen (tellingen) op het scherm:free -s 5 -c 10
wij kunnen output van vrij bevel als volgt controleren:free
free -k
free -g
free -m
de Optie | Toon output in |
---|---|
-b, –bytes | |
–kilo | kb |
–mega | mb |
–giga | gb |
–tera | terabyte |
–peta | petabytes |
-k, –kibi | kibibytes |
-m, –mebi | mebibytes |
-g, –gibi | gibibytes |
–tebi | tebibytes |
–pebi | pebibytes |
vmstat commando
De vmstat opdracht is krachtig, en het geeft informatie over Linux hardware, zoals:
- Processen
- Memory
- Paging
- Blok IO
- Vallen
- Schijven
- CPU-activiteit
Open de terminal en typ de volgende opdracht:vmstat
Voorbeeld van een sessie van mijn 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
de-w te zien een breed output op het scherm: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
Veld | Beschrijving |
---|---|
swpd | de hoeveelheid virtueel geheugen gebruikt. |
vrij | de hoeveelheid inactief geheugen. |
buff | de hoeveelheid geheugen die als buffers wordt gebruikt. |
cache | de hoeveelheid geheugen die als cache wordt gebruikt. |
inact | de hoeveelheid inactief geheugen. (- een optie) |
actief | de hoeveelheid actief geheugen. (- een optie) |
si | hoeveelheid geheugen die van schijf (en) is verwisseld. |
dus | hoeveelheid geheugen geruild naar schijf (/s). |
top en htop Commando
de top en htop commando ‘ s bieden een dynamische real-time weergave van een draaiend Linux systeem. Dit omvat informatie over:
- geen advertenties en tracking
- diepgaande handleidingen voor ontwikkelaars en systeembeheerders bij Opensourceflare✨
- Word lid van mijn Patreon om onafhankelijke contentmakers te ondersteunen en begin met het lezen van de nieuwste handleidingen:
- het instellen van Redis sentinel-cluster op Ubuntu of Debian Linux
- het Instellen van SSH Sleutels Met YubiKey als twee-factor authenticatie (U2F/FIDO2)
- het instellen van Mariadb Galera cluster op Ubuntu of Debian Linux
- Een podman tutorial voor beginners – deel I (Linux containers zonder Docker en in daemonless modus)
- Hoe te beschermen Linux tegen malafide USB-apparaten met behulp van USBGuard
- Als uw domein niet verzenden van e-mail, kunt u de DNS-instellingen om te voorkomen dat spoofing en phishing
- Hardware-en CPU-gebruik
- Linux-uptime
- geheugen-en swap-gebruik
- systeemprocessen en meer
houd er rekening mee dat de htop standaard niet is geïnstalleerd. Maar u kunt het eenvoudig installeren op CentOS, Debian, Ubuntu en andere besturingssystemen.
voer het volgende commando uit:top
htop
rapporteer geheugengebruik met gedeeld geheugen proportioneel verdeeld
de smem tool rapporten:
- fysiek geheugengebruik rekening houdend met gedeelde geheugenpagina ‘ s. Unshared geheugen wordt gerapporteerd als de USS (Unique Set Size).
- gedeeld geheugen wordt gelijkmatig verdeeld over de processen die dat geheugen delen.
- het unshared memory (USS) plus het aandeel van een proces in gedeeld geheugen wordt gerapporteerd als de PSS (Proportional Set Size).
- de USS en PSS bevatten alleen fysiek geheugengebruik. Ze bevatten geen geheugen dat is verwisseld naar schijf.
- geheugen kan worden gerapporteerd door een proces, door een gebruiker, door toewijzing of door het hele systeem. Zowel tekstmodus als grafische uitvoer zijn beschikbaar.
Men kan installeren smem met behulp van het commando apt/apt-get-opdracht op een Debian/Ubuntu Linux:sudo apt install smem
Voer het als volgt: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
Het controleren geheugengebruik in Linux met behulp van de GUI
System Monitor is een GUI voor Linux applicatie waarbij je kunt zien welke programma ‘ s actief zijn en hoeveel processortijd, geheugen en schijfruimte wordt gebruikt. We kunnen de systeemmonitor openen vanuit het activiteitenoverzicht. Druk op de Super toets op uw toetsenbord. U kunt uw vensters en toepassingen in het overzicht zien. U kunt ook gewoon beginnen met typen om uw toepassingen te zoeken, zoals Systeemmonitor. Het tabblad Bronnen geeft aan hoeveel geheugen (RAM) van uw computer wordt gebruikt. Om te controleren welke processen het meeste geheugen gebruiken: klik op het tabblad Processen. Klik op de koptekst geheugen om de processen te sorteren op basis van geheugengebruik.
zie documentatie voor meer informatie.
samenvattend
u hebt geleerd hoe u gebruik van Linux-geheugen (RAM) op Linux kunt vinden met behulp van GUI-en CLI-gereedschappen.
RSS-feed ➔ Wekelijkse e-mail nieuwsbrief ➔
Categorie | Lijst van Unix-en Linux-commando ‘ s |
---|---|
Download managers | wget |
Documentatie | help • mandb • man • pinfo |
schijfruimte analyzers | df • duf • ncdu • pydf |
bestandsbeheer | cat • cp • minder • mkdir • meer • boom |
Firewall | Alpine Ijlings • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Bureaublad-apps, | Skype • Spotify • VLC 3 |
Moderne utilities | bat • exa |
Netwerk Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian-8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processen Management | bg • chroot • cron • niet aanvaardt • fg • blik • gtop • iotop • banen • killall • doden • pidof • pstree • pwdx • tijd • vtop |
Zoeken | ag • grep • whereis • die |
Shell builtins | compgen • echo • printf |
tekstverwerking | knippen • rev |
Informatie voor de Gebruiker | groepen • id • lastcomm • laatste * lid / libuser-lid * logname * members * users * whoami * who * w |
WireGuard VPN | Alpine * CentOS 8 * Debian 10 * Firewall * Ubuntu 20.04 |