cum să verificați utilizarea memoriei în 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.
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
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
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
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
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
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
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:
- 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
- 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.
RSS feed newsletter săptămânal de e – mail➔
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 |