Odczytywanie informacji o pamięci operacyjnej w systemach Linux

      0 min read           · ·

Informację na temat zainstalowanej w naszym sprzęcie pamięci można otrzymać z systemu na kilka sposobów.

Pierwszy to odczytanie informacji z pliku meminfo znajdującego się w kartotece /proc/

$ cat /proc/meminfo

MemTotal: 1025648 kB

MemFree: 26272 kB

Buffers: 48304 kB

Cached: 321696 kB

SwapCached: 56 kB

Active: 633540 kB

Inactive: 178652 kB

HighTotal: 121728 kB

HighFree: 252 kB

LowTotal: 903920 kB

LowFree: 26020 kB

SwapTotal: 1052216 kB

SwapFree: 1052124 kB

Dirty: 80 kB

Writeback: 0 kB

AnonPages: 440256 kB

Mapped: 129824 kB

Slab: 34584 kB

SReclaimable: 21204 kB

SUnreclaim: 13380 kB

PageTables: 7004 kB

NFS_Unstable: 0 kB

Bounce: 0 kB

CommitLimit: 1565040 kB

Committed_AS: 1008220 kB

VmallocTotal: 110584 kB

VmallocUsed: 12668 kB

VmallocChunk: 97268 kB

HugePages_Total: 0

HugePages_Free: 0

HugePages_Rsvd: 0

HugePages_Surp: 0

Hugepagesize: 2048 kB

System zwraca sporo informacji, jednak większość z nich to informacje o użyciu i wykorzystaniu pamięci w systemie.

Innym sposobem dającym podobne wyniki jest wykorzystanie funkcji sysinfo(), dostępnej w  biblioteco sys/sysinfo.h przy kompilacji gcc . Oto kod którego użyłem w programie sysinfo.c . A oto wynik jego działania:

Pamiec RAM: 1025648k Wolna: 14156k

Wspoldzielona : 0k

Buforowana: 22076k

Swap: 1052216k Wolny: 1050100k

Liczba procesow: 271

Kolejnym sposobem, podającym informacje o całym sprzęcie, nie tylko pamięci, a zarazem podającym dokładne właściwości pamięci, bardziej od strony producenta, a nie systemu operacyjnego jest wyciągnięcie ich z /dev/mem . Można to zrobić za pomocą polecenia dmidecode, które odpowiednio sparsuje informacje i poda je na ekran w gotowej do oczytania formie. Log jest dość długi dlatego zamieszczam go w pliku: dmidecode.log

comments powered by Disqus