Prezentare generală
uneori, ar putea fi necesar să verificăm dimensiunea totală a memoriei pe un server care rulează Linux sau ar putea fi necesar să folosim statistici de memorie în scripturile shell. Din fericire, avem acces la numeroase instrumente pe care le putem folosi pentru a verifica memoria fizică totală. În acest tutorial, vom lua abordări diferite pentru a servi acestui scop folosind mai multe comenzi și instrumente utile.
2. Free Command
free este cea mai simplă dintre toate comenzile pe care le vom vedea. Este folosit pentru a imprima utilizarea memoriei fizice și swap — în mod implicit, se imprimă la ieșire standard. Comanda gratuită este una dintre comenzile utilizate pe scară largă pentru a verifica rapid Statisticile RAM, deoarece este disponibilă pe majoritatea distribuțiilor Linux. Putem pur și simplu să tastăm comanda gratuită pe terminalul nostru fără steaguri:
$ free
total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0
după cum putem, dimensiunea memoriei fizice este tipărită în octeți. Cu toate acestea, putem imprima cu ușurință ieșirea într-un format lizibil de om folosind steagul-h sau-human:
$ free -h
total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B
după cum se poate observa în ieșirea de mai sus, avem un total de 7,6 GiB de memorie RAM. Mai mult, există o mulțime de alte opțiuni care pot fi utilizate pentru a imprima ieșirea în formatul care ne place, cum ar fi –kilo, –mega, –Giga și așa mai departe. O altă opțiune interesantă este opțiunea-s:
$ free -h -s 5
steagul-S reprezintă secunde, astfel încât free va imprima utilizarea RAM la fiecare 5 secunde în acest exemplu. Este util mai ales dacă dorim să monitorizăm utilizarea RAM la un interval specificat. Putem termina cu ușurință procesul cu comanda rapidă de la tastatură Ctrl + C.
3. comanda vmstat
ca și comanda gratuită, vmstat (virtual memory statistics) este disponibil și pe majoritatea distribuțiilor Linux. În mod implicit, atunci când tastăm comanda vmstat, aceasta va imprima memoria gratuită, tamponată și cache alături de informațiile swap, CPU, IO și system:
$ 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 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0
steagul-W sau-wide imprimă ieșirea într-un format larg lizibil. Deoarece suntem interesați de dimensiunea totală a RAM – ului, vom adăuga steagul-s sau –stats:
$ vmstat -s
8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks
prima intrare în ieșire este memoria RAM fizică totală. Uneori, nu avem nevoie de toate informațiile, așa că putem folosi grep pentru a extrage doar intrarea dorită:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory
4. top Command
top este de fapt o linie de comandă task manager cu o ieșire în timp real. Este folosit pentru a verifica procesele care rulează într-un aspect de tabel curat. De asemenea, ne arată informațiile despre CPU, RAM și sistem în general. Putem să-l declanșăm prin simpla rulare a comenzii de sus:
$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem
în partea de sus, putem vedea informațiile de memorie de lângă câmpul Mem și observăm că avem un total de 7833 MiB de memorie RAM totală.
5. dmidecode Utility
dmidecode este un instrument de ajutor care imprimă informații despre componentele hardware – cum ar fi specificațiile hardware, numerele de serie și versiunile BIOS – într-un format care poate fi citit de om. Informațiile hardware sunt extrase din tabelul DMI. De asemenea, îl putem folosi pentru a găsi informații interesante despre sistemul nostru, cum ar fi memoria maximă acceptată.
5.1. Instalarea dmidecode
dmidecode nu este instalat în mod implicit pe unele distribuții Linux, așa că îl vom instala mai întâi. Putem instala dmidecode direct din depozitul nostru de distribuție folosind un manager de pachete.
pentru distribuțiile bazate pe Ubuntu, putem instala pachetul prin apt:
# apt install dmidecode
pentru RHEL, Fedora și CentOS, putem folosi yum:
# yum install dmidecode
pe distribuții bazate pe Arch, pur și simplu utilizați pacman:
# pacman -Sy dmidecode
5.2. Folosind dmidecode
odată ce instalarea este finalizată, putem rula comanda dmidecode de la terminalul nostru:
# dmidecode
trebuie să avem privilegii de root pentru a rula dmidecode. Odată ce executăm comanda, vom putea vedea informații hardware detaliate. Conține o mulțime de informații legate de componentele noastre hardware, dar suntem interesați doar de dimensiunea noastră totală a memoriei.
din fericire, putem alimenta opțiunea de tip la comanda pentru diferite componente, cum ar fi BIOS, memorie, procesor, temperaturi, și așa mai departe. Opțiunea-type așteaptă un număr pentru tipurile DMI.
în cazul nostru, vrem să ne uităm la tipul de memorie DMI, care poate fi accesat cu numerele atribuite 5, 6, 16, 17, 18, 19, 20, 21, și 22. Cu toate acestea, suntem interesați de numărul 19, care va imprima dispozitivele RAM care sunt atașate în prezent la sloturile de pe placa noastră de bază:
# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1
după cum putem vedea, avem doar un singur dispozitiv RAM cu 8 GB de dimensiune totală instalat într-unul dintre sloturile RAM.
6. / proc / meminfo fișier Virtual
directorul /proc este un tip special de director care conține fișiere virtuale. Aceste fișiere virtuale sunt o modalitate de a arunca o privire asupra kernel-ului, proceselor și configurațiilor Linux. Aceste fișiere nu există de fapt pe disc și nu ocupă spațiu, dar sunt create atunci când sunt citite. Accesul la unele fișiere necesită acces root.
există un fișier virtual special numit meminfo, în directorul /proc, care poate fi citit cu comenzi precum cat și less. Fișierul meminfo conține informații despre dimensiunea memoriei noastre fizice, printre alte informații utile. Să citim fișierul / proc / meminfo folosind cat:
$ cat /proc/meminfo
în exemplul de mai sus, am folosit comanda cat, care este un utilitar util care poate citi dintr-un fișier sau o intrare standard. Odată ce comanda este executată, va citi /proc/meminfo și ne va prezenta o ieșire lungă în ceea ce privește memoria noastră fizică. Suntem interesați doar de dimensiunea totală RAM, care apare în primele trei linii ale ieșirii:
$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB
am tipărit doar liniile care ne interesează folosind comanda principală. Argumentul-n furnizat comenzii head este utilizat pentru a specifica numărul de linii de citit. Dimensiunile sunt tipărite în kilobiți și ar trebui să ne ofere o idee despre memoria noastră fizică totală, gratuită și disponibilă.
să presupunem că scriem un script Bash în care trebuie să procesăm dimensiunea fizică a RAM-ului. Putem realiza acest lucru citind mai întâi fișierul/proc / meminfo și apoi grep dimensiunea totală a memoriei:
#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"
acum, să salvăm scriptul și să-l facem executabil:
$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB
utilizarea managerilor DE SARCINI GUI
există o varietate de manageri de sarcini GUI pe care îi putem folosi pentru a verifica utilizarea procesorului, a memoriei RAM și a rețelei, pe lângă gestionarea proceselor. Să aruncăm o privire rapidă la cele mai populare Pentru Linux.
7.1. GNOME System Monitor
GNOME System Monitor este managerul de activități implicit care este livrat cu mediul desktop GNOME. Cu toate acestea, dacă rulăm un mediu desktop diferit, putem căuta cu ușurință pachetul gnome-system-monitor în depozitul nostru de pachete de distribuție. Odată instalat, îl putem lansa din linia de comandă:
$ gnome-system-monitor
la navigarea la fila Resurse, putem vedea dimensiunea totală a memoriei noastre printre alte statistici.
7.2. KSysGuard
KSysGuard este managerul de activități implicit dezvoltat de comunitatea KDE și vine cu KDE în mod implicit. În mod similar, dacă folosim un mediu desktop diferit, îl putem instala cu ușurință pe sistemul nostru căutând pachetul ksysguard în depozitul de pachete. O putem lansa cu comanda ksysguard odată instalată:
$ ksysguard
odată ce ksysguard începe, putem merge la fila Încărcare sistem și a vedea informațiile noastre de memorie, împreună cu un grafic frumos.
concluzie
în acest articol, am analizat diferite comenzi și instrumente care ne pot ajuta să aflăm dimensiunea memoriei fizice a sistemului nostru Linux.
am acoperit Comanda minimă gratuită și comanda sa alternativă vmstat. Apoi am folosit comanda de sus pentru a afla diverse informații despre sistem. De asemenea, ne-am uitat la utilitarul dmidecode și cum putem extrage informațiile de memorie fizică din tabelul DMI.
după aceea, am aflat ce este directorul /proc și cum putem citi fișierul /proc/meminfo pentru a verifica dimensiunea totală a RAM-ului și a-l folosi într-un script bash. În cele din urmă, am aflat despre câțiva manageri de sarcini grafice și cum le putem folosi pentru a verifica utilizarea RAM și statistici.
dacă aveți câțiva ani de experiență în ecosistemul Linux și sunteți interesat să împărtășiți această experiență cu comunitatea, aruncați o privire la orientările noastre de contribuție.