przegląd

czasami możemy potrzebować sprawdzić całkowity rozmiar pamięci na serwerze z systemem Linux lub możemy potrzebować użyć statystyk Pamięci w skryptach powłoki. Na szczęście mamy dostęp do wielu narzędzi, których możemy użyć do sprawdzenia całkowitej pamięci fizycznej. W tym samouczku będziemy stosować różne podejścia, aby służyć temu celowi za pomocą kilku przydatnych poleceń i narzędzi.

2. polecenie free

free jest najprostszym ze wszystkich poleceń jakie zobaczymy. Służy do drukowania fizycznego i wymiany pamięci-domyślnie drukuje na standardowe wyjście. Wolne polecenie jest jednym z powszechnie używanych poleceń do szybkiego sprawdzania statystyk Pamięci RAM, ponieważ jest dostępne w większości dystrybucji Linuksa. Możemy po prostu wpisać wolne polecenie na naszym terminalu bez żadnych flag:

$ free
 total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0

jak możemy, rozmiar pamięci fizycznej jest drukowany w bajtach. Możemy jednak łatwo wydrukować dane wyjściowe w formacie czytelnym dla człowieka za pomocą flagi-h lub-human:

$ free -h
 total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B

jak widać na powyższym wyjściu, mamy łącznie 7.6 GiB pamięci RAM. Co więcej, istnieje wiele innych opcji, które można wykorzystać do wydrukowania wyjścia w formacie, który lubimy, takim jak –kilo, –mega, – Giga i tak dalej. Jeszcze jedną ciekawą opcją jest opcja-S:

$ free -h -s 5

flaga-s oznacza sekundy, więc w tym przykładzie free wyświetli zużycie pamięci RAM co 5 sekund. Jest to szczególnie przydatne, jeśli chcemy monitorować użycie pamięci RAM w określonym przedziale czasu. Możemy łatwo zakończyć proces skrótem klawiaturowym Ctrl + C.

3. polecenie vmstat

podobnie jak wolne polecenie, vmstat (virtual memory statistics) jest również dostępne w większości dystrybucji Linuksa. Domyślnie, gdy wpisujemy polecenie vmstat, drukuje wolną, buforowaną i buforowaną pamięć wraz z informacjami o swapie, procesorze, IO i systemie:

$ 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

flaga-w lub-wide drukuje dane wyjściowe w szerokim formacie do odczytu. Ponieważ interesuje nas Całkowity rozmiar pamięci RAM, dodamy flagę –s lub-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

pierwszym wpisem na wyjściu jest całkowita fizyczna PAMIĘĆ RAM. Czasami nie potrzebujemy wszystkich informacji, więc możemy użyć grep, aby wyodrębnić tylko żądany wpis:

$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory

4. top Command

top jest w zasadzie menedżerem zadań wiersza poleceń z wyjściem w czasie rzeczywistym. Służy do sprawdzania uruchomionych procesów w czystym układzie tabeli. Pokazuje nam również informacje o procesorze, pamięci RAM i systemie w ogóle. Możemy go odpalić po prostu uruchamiając polecenie top:

$ 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

na górze możemy zobaczyć informacje o pamięci obok pola Mem i zaobserwować, że mamy łącznie 7833 MiB całkowitej pamięci RAM.

5. narzędzie dmidecode

dmidecode jest narzędziem pomocniczym, które drukuje informacje o komponentach sprzętowych – takich jak specyfikacje sprzętu, numery seryjne i wersje BIOS-w formacie czytelnym dla człowieka. Informacje o sprzęcie są pobierane z tabeli DMI. Możemy również użyć go do znalezienia interesujących informacji o naszym systemie, takich jak maksymalna obsługiwana pamięć.

5.1. Instalacja dmidecode

dmidecode nie jest domyślnie instalowany na niektórych dystrybucjach Linuksa, więc najpierw go zainstalujemy. Możemy zainstalować dmidecode bezpośrednio z naszego repozytorium dystrybucji za pomocą menedżera pakietów.

dla dystrybucji opartych na Ubuntu możemy zainstalować pakiet poprzez apt:

# apt install dmidecode

Dla RHEL, Fedora i CentOS możemy użyć yum:

# yum install dmidecode

na dystrybucjach opartych na Arch wystarczy użyć pacmana:

# pacman -Sy dmidecode

5.2. Używając dmidecode

po zakończeniu instalacji możemy uruchomić polecenie dmidecode z naszego terminala:

# dmidecode

musimy mieć uprawnienia roota, aby uruchomić dmidecode. Po uruchomieniu polecenia będziemy mogli zobaczyć szczegółowe informacje o sprzęcie. Zawiera wiele informacji związanych z naszymi komponentami sprzętowymi, ale interesuje nas tylko całkowity rozmiar pamięci.

na szczęście możemy podać opcję –type poleceniu dla różnych komponentów, takich jak BIOS, pamięć, procesor, temperatura i tak dalej. Opcja-type oczekuje liczby dla typów DMI.

w naszym przypadku chcemy przyjrzeć się typowi pamięci DMI, do której można uzyskać dostęp z przypisanymi numerami 5, 6, 16, 17, 18, 19, 20, 21, i 22. Interesuje nas jednak liczba 19, która wydrukuje urządzenia pamięci RAM, które są obecnie podłączone do gniazd na naszej płycie głównej:

# 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

jak widać, mamy tylko jedno urządzenie RAM z 8 GB o łącznej wielkości zainstalowane w jednym z gniazd pamięci RAM.

6. /proc /meminfo Virtual File

katalog / proc jest specjalnym typem katalogu, który zawiera pliki wirtualne. Te wirtualne pliki są sposobem na rzucenie okiem na jądro Linuksa, procesy i konfiguracje. Pliki te w rzeczywistości nie istnieją na dysku i nie zajmują miejsca, ale są tworzone po przeczytaniu. Dostęp do niektórych plików wymaga dostępu roota.

w katalogu /proc znajduje się specjalny wirtualny plik o nazwie meminfo, który można odczytać za pomocą poleceń takich jak cat i less. Plik meminfo zawiera informacje na temat naszego fizycznego rozmiaru pamięci wśród innych przydatnych informacji. Przeczytajmy plik/proc / meminfo używając cat:

$ cat /proc/meminfo

w powyższym przykładzie użyliśmy polecenia cat, które jest użytecznym narzędziem, które może czytać z pliku lub standardowego wejścia. Gdy polecenie zostanie wykonane, odczyta /proc / meminfo i wyświetli nam długi wynik dotyczący naszej fizycznej pamięci. Interesuje nas tylko całkowity rozmiar pamięci RAM, który pojawia się w trzech pierwszych liniach wyjścia:

$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB

wydrukowaliśmy tylko te linie, które nas interesują, używając polecenia head. Argument – N podany poleceniu head służy do określenia liczby wierszy do odczytania. Rozmiary są drukowane w kilobajtach i powinny dać nam wyobrażenie o tym, czym jest nasza całkowita, wolna i dostępna pamięć fizyczna.

Załóżmy, że piszemy skrypt Bash, w którym musimy przetworzyć fizyczny rozmiar pamięci RAM. Możemy to osiągnąć, czytając najpierw plik/proc / meminfo, a następnie grep Całkowity rozmiar pamięci:

#!/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"

teraz zapiszmy skrypt i uczyńmy go wykonywalnym:

$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB

Korzystanie z menedżerów zadań GUI

istnieje wiele menedżerów zadań GUI, których możemy używać do sprawdzania użycia procesora, pamięci RAM i sieci oprócz zarządzania procesami. Rzućmy okiem na najpopularniejsze dla Linuksa.

7.1. GNOME System Monitor

GNOME System Monitor to domyślny Menedżer zadań dostarczany ze środowiskiem graficznym GNOME. Jeśli jednak korzystamy z innego środowiska graficznego, możemy łatwo wyszukać pakiet gnome-system-monitor w naszym repozytorium pakietów dystrybucyjnych. Po zainstalowaniu możemy go uruchomić z wiersza poleceń:

$ gnome-system-monitor

po przejściu do karty Zasoby, możemy zobaczyć nasz Całkowity rozmiar pamięci wśród innych statystyk.

7.2. KSysGuard

ksysguard jest domyślnym menedżerem zadań opracowanym przez społeczność KDE i domyślnie jest dostarczany z KDE. Podobnie, jeśli używamy innego środowiska graficznego, możemy łatwo zainstalować go w naszym systemie, szukając pakietu ksysguard w repozytorium pakietów. Możemy go uruchomić za pomocą polecenia ksysguard po zainstalowaniu:

$ ksysguard

po uruchomieniu ksysguard możemy przejść do zakładki ładowanie systemu i zobaczyć informacje o naszej pamięci wraz z ładnym wykresem.

podsumowanie

w tym artykule przyjrzeliśmy się różnym poleceniom i narzędziom, które mogą nam pomóc w ustaleniu fizycznego rozmiaru pamięci naszego systemu Linux.

omówiliśmy polecenie minimal free i jego alternatywne polecenie vmstat. Następnie użyliśmy polecenia top, aby znaleźć różne informacje o systemie. Przyjrzeliśmy się również narzędziu dmidecode i temu, jak możemy wyodrębnić informacje o fizycznej pamięci z tabeli DMI.

następnie dowiedzieliśmy się, czym jest katalog / proc i jak możemy odczytać plik/proc / meminfo, aby sprawdzić całkowity rozmiar pamięci RAM i użyć go w skrypcie bash. Na koniec dowiedzieliśmy się o kilku graficznych menedżerach zadań i o tym, jak możemy ich używać do sprawdzania użycia pamięci RAM i statystyk.

jeśli masz kilkuletnie doświadczenie w ekosystemie Linuksa i jesteś zainteresowany podzieleniem się tym doświadczeniem ze społecznością, zapoznaj się z naszymi wytycznymi dotyczącymi wkładu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.