decembrie 17, 2021

cum să verificați utilizarea memoriei în Linux

vedeți toate întrebările frecvente legate de GNU/Linux

Cum verific utilizarea memoriei în Linux utilizând opțiunile de linie de comandă și GUI?
avem memorie RAM fizică, cum ar fi 16 Gb și memorie swap. Memoria Swap nu este altceva decât spațiu pe disc care permite computerului Linux să ruleze mai multe aplicații simultan decât se va încadra în memoria sistemului (RAM). Această pagină explică diverse comenzi pentru a verifica utilizarea și utilizarea memoriei în Linux folosind instrumente de linie de comandă și GUI.

publicitate

comenzi pentru a verifica utilizarea memoriei în Linux

sistemul Linux trebuie să ruleze la un nivel optim. Memoria joacă un rol critic într-un sistem Linux. Un dezvoltator sau un sysadmin experimentat trebuie să cunoască cantitatea totală de fizic gratuit și folosit, inclusiv memoria swap în server. Cel mai bine ar fi să fii cu ochii pe tampoane și cache-uri folosite și de kernel.

fișierul /proc/meminfo

fișierul /proc/meminfo raportează statistici despre utilizarea memoriei pe Linux. Utilizați comanda cat / less command sau comanda grep/comanda egrep după cum urmează pe caseta Linux:
cat /proc/meminfo
more /proc/meminfo

cum se verifică utilizarea memoriei în Linux
fiecare linie a fișierului /proc/meminfo constă dintr-un nume de parametru, urmat de două puncte, valoarea parametrului și o unitate de măsură a opțiunii. De exemplu,”kB”.

înțelegerea parametrilor de utilizare a memoriei

tabelul de descriere a câmpurilor
parametru descriere
MemTotal total RAM utilizabil (adică., RAM fizic minus câțiva biți rezervați și codul binar al nucleului).
MemFree suma LowFree+HighFree.
MemAvailable (de la Linux 3.14) o estimare a cantității de memorie disponibilă pentru pornirea de noi aplicații, fără a schimba.
tampoane stocare relativ temporară pentru blocurile de discuri brute care nu ar trebui să devină extrem de mari (aproximativ 20 MB).
cache cache în memorie pentru fișierele citite de pe disc (cache-ul paginii). Nu include SwapCached.
SwapCached memorie care o dată a fost schimbat afară, este schimbat înapoi, dar încă, de asemenea, este în fișierul de swap.
memorie activă care a fost utilizată mai recent și, de obicei, nu a fost recuperată decât dacă este absolut necesar.
memorie inactivă care a fost utilizată mai puțin recent. Este mai eligibil să fie recuperat în alte scopuri.
HighTotal cantitatea totală de highmem. Highmem este toată memoria de mai sus ~860mb de memorie fizică. Zonele Highmem sunt destinate utilizării de către programele spațiale utilizator sau pentru memoria cache a paginii. Nucleul trebuie să folosească trucuri pentru a accesa această memorie, făcând-o mai lentă decât lowmem.
HighFree Cantitatea de highmem liber.
LowFree Cantitatea de lowmem liber.
SwapTotal valoarea totală a spațiului de swap disponibil.
SwapFree Cantitatea de spațiu de swap, care este în prezent neutilizat.
Dirty memorie care așteaptă să fie scrisă înapoi pe disc.
Writeback memorie care este activ în curs de scris înapoi pe disc.
AnonPages non-fișier pagini garantate mapate în tabele de pagini spațiu de utilizator.
mapate fișiere care au fost mapate în memorie (cu mmap (2)), cum ar fi bibliotecile.
Shmem Cantitatea de memorie consumată în sistemele de fișiere tmpfs(5).
kreclaimable alocări de Kernel pe care kernelul va încerca să le revendice sub presiunea memoriei. Include SReclaimable (de mai jos) și alte alocări directe cu un shrinker.
lespede în-kernel structuri de date cache. (A se vedea slabinfo (5).)
SReclaimable parte din lespede, care ar putea fi recuperate, cum ar fi cache-uri.
SUnreclaim parte a plăcii, care nu poate fi recuperată la presiunea memoriei.
KernelStack Cantitatea de memorie alocată stivelor de kernel.
PageTables cantitate de memorie dedicată celui mai scăzut nivel de tabele de pagini.
nfs_unstable pagini NFS trimise la server, dar nu a fost încă angajat la stocare stabilă.
Bounce memorie utilizată pentru bloc dispozitiv „bounce tampoane”.
WritebackTmp memorie utilizată de FUSE pentru tampoane temporare de scriere.
CommitLimit aceasta este cantitatea totală de memorie disponibilă în prezent pentru a fi alocată sistemului, exprimată în kilobiți. Această limită este respectată numai dacă este activată contabilitatea strictă a supraangajării (modul 2 în /proc/sys/vm/overcommit_memory). Limita este calculată conform formulei descrise la /proc/sys/vm/overcommit_memory.
Committed_AS cantitatea de memorie alocată în prezent pe sistem. Memoria angajată este o sumă a întregii memorii care a fost alocată prin procese, chiar dacă nu a fost „folosită” de ei încă. Un proces care alocă 1 GB de memorie (folosind malloc (3) sau similar), dar atinge doar 300 MB din acea memorie va apărea ca folosind doar 300 MB de memorie, chiar dacă are spațiul de adrese alocat pentru întregul 1 GB. Acest 1GB este o memorie care a fost „angajată” de către VM și poate fi utilizată în orice moment de către aplicația de alocare. Cu supracomisia strictă activată în sistem (modul 2 în /proc/sys/vm/overcommit_memory), alocările care ar depăși limitele de angajament nu vor fi permise. Acest lucru este util dacă trebuie să garantăm că procesele nu vor eșua din cauza lipsei de memorie odată ce memoria a fost alocată cu succes.
VmallocTotal dimensiunea totală a zonei de memorie vmalloc.
VmallocUsed Cantitatea de zonă vmalloc care este utilizată. Începând cu Linux 4.4, acest câmp nu mai este calculat și este greu codificat ca 0. A se vedea/proc / vmallocinfo.
VmallocChunk cel mai mare bloc contigue din zona vmalloc, care este liber. De la Linux 4.4, acest câmp nu mai este calculat și este greu codificat ca 0. A se vedea/proc / vmallocinfo.
LazyFree arată cantitatea de memorie marcată de madvise(2) MADV_FREE.
AnonHugePages non-fișier sprijinit pagini uriașe mapate în tabele de pagini spațiu de utilizator.
ShmemHugePages memorie utilizată de memoria partajată (shmem) și tmpfs (5) alocate cu pagini uriașe
ShmemPmdMapped memorie partajată mapată în spațiul utilizatorului cu pagini uriașe.
CmaTotal Total CMA (contigue memorie Allocator) pagini.
CmaFree gratuit CMA (contigue memorie Allocator) pagini.
HugePages_Total dimensiunea bazinului de pagini uriașe.
HugePages_Free Numărul de pagini uriașe din piscină care nu sunt încă alocate.
HugePages_Rsvd acesta este numărul de pagini uriașe pentru care s-a făcut un angajament de alocare din piscină, dar nu s-a făcut încă nicio alocare. Aceste pagini uriașe rezervate garantează că o aplicație va putea aloca o pagină uriașă din grupul de pagini uriașe la momentul defectării.
HugePages_Surap acesta este numărul de pagini uriașe din piscină deasupra valorii din /proc/sys/vm/nr_hugepages. Numărul maxim de pagini uriașe excedentare este controlat de / proc/sys/vm / nr_overcommit_hugepages.
Hugepagesize dimensiunea paginilor uriașe.
DirectMap4k Numărul de octeți de RAM mapate liniar de kernel în pagini 4KB.
DirectMap4M Numărul de octeți de RAM mapate liniar de kernel în pagini 4MB.
DirectMap2M Numărul de octeți de RAM mapate liniar de kernel în pagini 2MB.
DirectMap1G x86 cu CONFIG_X86_64 și CONFIG_X86_DIRECT_GBPAGES activat.

putem filtra fișierul folosind comanda grep sau comanda egrep după cum urmează:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
Linux proc meminfo fișier

folosind comanda liberă pentru a verifica utilizarea memoriei utilizate și libere

ieșirea /proc/meminfo este puternică, dar nu este ușor de utilizat. Prin urmare, trebuie să folosim comanda liberă. Comanda gratuită arată cantitatea de memorie liberă și utilizată în sistemul Linux. De exemplu:
free
doriți să vedeți ieșirea lizibilă de om? Încercați:
free -h
free --human

ieșiri de probă:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
coloanele afișate sunt după cum urmează:
coloana descriere
total total memorie instalată
folosit memorie utilizată (calculată ca total-free-buffers-cache)
gratuit memorie neutilizată (MemFree și SwapFree în / proc / meminfo)
partajat memorie utilizată mai ales de tmpfs (Shmem în / proc/meminfo)
tampoane memorie utilizată de tampoane de kernel (tampoane în / proc/meminfo)
cache memoria utilizată de memoria cache a paginii și plăci (cache și SReclaimable în / proc / meminfo)
buff / cache suma tampoanelor și cache-ului
disponibil estimarea cantității de memorie disponibilă pentru pornirea aplicațiilor noi, fără a schimba.

putem repeta imprimarea de ieșire de comandă liberă la fiecare n secunde. De exemplu, imprimați ieșirea la fiecare 5 secunde și ieșiți după zece astfel de repetări (numărări) pe ecran:
free -s 5 -c 10
putem controla ieșirea comenzii libere după cum urmează:
free
free -k
free -g
free -m

controlul ieșirii libere a comenzii
opțiune afișare ieșire în
-b, — octeți
–kg kilobytes
–mega megaocteți
–giga gigaocteți
–tera terabytes
–peta petabytes
-k, — kibi kibibiți
-m, — mebi mebibytes
-g, — gibi gibibytes
–tebi tebibytes
–pebi pebibytes

comanda vmstat

comanda vmstat este puternică și afișează informații despre hardware-ul Linux, cum ar fi:

  • procese
  • memorie
  • paginare
  • bloc IO
  • capcane
  • discuri
  • activitatea procesorului

deschideți terminalul și tastați următoarea comandă:
vmstat
sesiune de probă de pe desktopul meu Ubuntu Linux:

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

treceți-w pentru a vedea ieșirea largă pe ecran:
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

descrierea câmpului pentru modul VM (memorie și Swap)
câmpul descriere
swpd cantitatea de memorie virtuală utilizată.
gratuit cantitatea de memorie inactiv.
buff cantitatea de memorie utilizată ca tampoane.
cache cantitatea de memorie utilizată ca cache.
inact cantitatea de memorie inactivă. (- o opțiune)
activ cantitatea de memorie activă. (- o opțiune)
si Cantitatea de memorie schimbată de pe disc (/s).
deci Cantitatea de memorie schimbată pe disc (/s).

comanda top și htop

comenzile top și htop oferă o vizualizare dinamică în timp real a unui sistem Linux care rulează. Aceasta include informații despre:

suporterii Patreon doar ghiduri 🤓
  • fără reclame și urmărire
  • ghiduri aprofundate pentru dezvoltatori și administratori de sistem la Opensourceflare
  • Alăturați-vă Patreonului meu pentru a sprijini creatorii de conținut independenți și pentru a începe să citiți cele mai recente ghiduri:
    • cum se configurează clusterul Redis sentinel pe Ubuntu sau Debian Linux
    • cum se configurează tastele SSH cu YubiKey ca autentificare cu doi factori (U2F/FIDO2)
    • cum se configurează Clusterul Mariadb Galera pe Ubuntu sau Debian Linux
    • un tutorial podman pentru începători-Partea I (rulați containere Linux fără Docker și în modul daemonless)
    • cum să protejați Linux împotriva dispozitivelor USB necinstite folosind Usbguard
    • dacă domeniul dvs. nu trimite e – mailuri, setați aceste setări DNS pentru a evita falsificarea și phishingul

Alăturați-vă Patreon XV

  • Hardware și CPU utilizare
  • Linux uptime
  • memorie și swap utilizare
  • procesele de sistem și mai mult

vă rugăm să rețineți că htop nu este instalat în mod implicit. Dar îl puteți instala cu ușurință pe CentOS, Debian, Ubuntu și alte sisteme de operare.

executați următoarea comandă:
top
htop

raportați utilizarea memoriei cu memoria partajată împărțită proporțional

instrumentul smem raportează:

  • utilizarea memoriei fizice luând în considerare paginile de memorie partajate. Memorie Unshared este raportat ca USS (Dimensiune Set unic).
  • memoria partajată este împărțită uniform între procesele care partajează acea memorie.
  • memoria unshared (USS) plus proporția de memorie partajată a unui proces este raportată ca PSS (Proportional Set Size).
  • USS și PSS includ numai utilizarea memoriei fizice. Acestea nu includ memoria care a fost schimbată pe disc.
  • memoria poate fi raportată printr-un proces, de către un utilizator, prin mapare sau la nivel de sistem. Sunt disponibile atât modul text, cât și ieșirea grafică.

se poate instala smem folosind comanda apt / comanda apt-get pe un Debian / Ubuntu Linux:
sudo apt install smem
rulați-l după cum urmează:
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

Verificarea utilizării memoriei în Linux utilizând GUI

System Monitor este o aplicație GUI Linux care vă arată ce programe rulează și cât timp, memorie și spațiu pe disc sunt utilizate. Putem deschide monitorul sistemului din prezentarea generală a activităților. Apăsați tasta Super de pe tastatură. Puteți vedea ferestrele și aplicațiile dvs. în prezentare generală. De asemenea, puteți începe să tastați pentru a căuta aplicațiile dvs., cum ar fi System Monitor. Fila Resurse vă spune cât de mult din memoria computerului (RAM) este utilizată. Pentru a verifica ce procese utilizează cea mai mare memorie: Faceți clic pe fila Procese. Faceți clic pe antetul coloanei de memorie pentru a sorta procesele în funcție de utilizarea memoriei.

consultați documentația pentru mai multe informații.

rezumând

ați învățat cum să găsiți utilizarea memoriei Linux (RAM) pe Linux folosind instrumente GUI și CLI.

🐧 Obțineți cele mai recente tutoriale despre Linux, Open Source & DevOps prin
RSS feed newsletter săptămânal de e – mail➔

publicitate

Categorie lista comenzilor Unix și Linux
manageri de descărcare wget
documentație ajutor * mandb * om * pinfo
analizoare de spațiu pe disc df * duf • ncdu * pydf
gestionarea fișierelor cat * cp * mai puțin • mkdir • mai mult * copac
paravan de protecție Alpine Awall * CentOS 8 * OpenSUSE * RHEL 8 * Ubuntu 16.04 * Ubuntu 18.04 * Ubuntu 20.04
Linux Desktop apps Skype * Spotify * VLC 3
utilitati moderne bat * exa
utilitati de retea
OpenVPN CentOS 7 * CentOS 8 * Debian 10 * Debian 8/9 * Ubuntu 18.04 * Ubuntu 20.04
Manager de pachete apk * apt
managementul proceselor bg • chroot • cron • renova • fg • priviri • gtop • iotop • locuri de muncă * killall * ucide • pidof • pstree * pwdx * timp • vtop
căutare ag * grep * unde este * care
Shell builtins compgen * echo * printf
Prelucrare Text cut * rev
Informații utilizator grupuri * id • lastcomm • ultimul * capac / libuser-capac • logname * membri * utilizatori * whoami * cine * w
WireGuard VPN Alpine * CentOS 8 * Debian 10 * Firewall * Ubuntu 20.04

Lasă un răspuns

Adresa ta de email nu va fi publicată.