přehled

někdy možná budeme muset zkontrolovat celkovou velikost paměti na serveru se systémem Linux nebo budeme muset použít statistiky paměti ve skriptech shellu. Naštěstí máme přístup k mnoha nástrojům, které můžeme použít ke kontrole celkové fyzické paměti. V tomto tutoriálu budeme používat různé přístupy k tomuto účelu pomocí několika užitečných příkazů a nástrojů.

2. free Command

free je nejjednodušší ze všech příkazů, které uvidíme. Používá se k tisku fyzické a odkládací využití paměti-ve výchozím nastavení se tiskne na standardní výstup. Bezplatný příkaz je jedním z široce používaných příkazů pro rychlou kontrolu statistik RAM, protože je k dispozici ve většině distribucí Linuxu. Můžeme jednoduše zadat bezplatný příkaz na našem terminálu bez příznaků:

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

jak můžeme, velikost fyzické paměti je vytištěna v bajtech. Výstup však můžeme snadno vytisknout v lidsky čitelném formátu pomocí vlajky-h nebo-human:

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

jak je vidět na výstupu Výše, máme celkem 7, 6 GiB paměti RAM. Kromě toho existuje spousta dalších možností, které lze použít k tisku výstupu ve formátu, který se nám líbí, jako je-kilo – – mega, – Giga atd. Další zajímavou možností je možnost-s:

$ free -h -s 5

příznak-s stojí několik sekund, takže free vytiskne využití paměti RAM každých 5 sekund v tomto příkladu. Je to zvláště užitečné, pokud chceme sledovat využití paměti RAM ve stanoveném intervalu. Proces můžeme snadno ukončit klávesovou zkratkou Ctrl + C.

3. příkaz vmstat

stejně jako bezplatný příkaz je vmstat (statistika virtuální paměti) k dispozici také ve většině distribucí Linuxu. Ve výchozím nastavení, když zadáme příkaz vmstat, vytiskne volnou, vyrovnávací paměť a uloženou paměť spolu s informacemi o swapu, CPU, IO a systému:

$ 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

příznak-w nebo-wide vytiskne výstup v široce čitelném formátu. Protože nás zajímá celková velikost paměti RAM, přidáme příznak –s nebo-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

první položka ve výstupu je total physical RAM. Někdy nepotřebujeme všechny informace, takže můžeme použít grep k extrahování pouze požadovaného záznamu:

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

4. top Command

top je v podstatě Správce úloh příkazového řádku s výstupem v reálném čase. Používá se ke kontrole běžících procesů v čistém rozložení tabulky. Ukazuje nám také informace o CPU, RAM a systému obecně. Můžeme to vypálit pouhým spuštěním horního příkazu:

$ 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

nahoře vidíme informace o paměti vedle pole Mem a pozorujeme, že máme celkem 7833 MiB celkové paměti RAM.

5. dmidecode Utility

dmidecode je pomocný nástroj, který tiskne informace o hardwarových komponentách – jako jsou hardwarové specifikace, sériová čísla a verze systému BIOS – v lidsky čitelném formátu. Informace o hardwaru jsou extrahovány z tabulky DMI. Můžeme jej také použít k nalezení zajímavých informací o našem systému, jako je maximální podporovaná paměť.

5.1. Instalace dmidecode

dmidecode není ve výchozím nastavení nainstalován na některých distribucích Linuxu, takže jej nejprve nainstalujeme. Dmidecode můžeme nainstalovat přímo z našeho distribučního úložiště pomocí správce balíčků.

pro distribuce založené na Ubuntu můžeme balíček nainstalovat pomocí apt:

# apt install dmidecode

pro RHEL, Fedoru a CentOS můžeme použít yum:

# yum install dmidecode

v distribucích založených na oblouku jednoduše použijte pacman:

# pacman -Sy dmidecode

5.2. Použití dmidecode

po dokončení instalace můžeme spustit příkaz dmidecode z našeho terminálu:

# dmidecode

pro spuštění dmidecode musíme mít oprávnění root. Jakmile spustíme příkaz, uvidíme podrobné informace o hardwaru. Obsahuje mnoho informací týkajících se našich hardwarových komponent, ale zajímá nás pouze celková velikost paměti.

naštěstí můžeme zadat volbu –type příkazu pro různé komponenty, jako je BIOS, paměť, procesor, teploty atd. Volba –type očekává číslo pro typy DMI.

v našem případě se chceme podívat na typ paměti DMI, ke kterému lze přistupovat pomocí přiřazených čísel 5, 6, 16, 17, 18, 19, 20, 21, a 22. Máme však zájem o číslo 19, které vytiskne zařízení RAM, která jsou aktuálně připojena k slotům na naší základní desce:

# 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 vidíme, v jednom ze slotů RAM máme nainstalováno pouze jedno zařízení RAM s celkovou velikostí 8 GB.

6. / proc / meminfo Virtual File

adresář / proc je speciální typ adresáře, který obsahuje virtuální soubory. Tyto virtuální soubory jsou způsob, jak nahlédnout do linuxového jádra, procesů a konfigurací. Tyto soubory ve skutečnosti neexistují na disku a neberou místo, ale jsou vytvořeny, když jsou čteny. Přístup k některým souborům vyžaduje přístup root.

uvnitř adresáře /proc je speciální virtuální soubor s názvem meminfo, který lze číst pomocí příkazů jako cat a less. Soubor meminfo obsahuje informace o naší fyzické velikosti paměti mimo jiné užitečné informace. Pojďme si přečíst soubor / proc / meminfo pomocí cat:

$ cat /proc/meminfo

ve výše uvedeném příkladu jsme použili příkaz cat, což je užitečný nástroj, který lze číst ze souboru nebo standardního vstupu. Jakmile je příkaz spuštěn, bude číst /proc / meminfo a představí nám dlouhý výstup týkající se naší fyzické paměti. Zajímá nás pouze celková velikost paměti RAM, která se objeví v prvních třech řádcích výstupu:

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

pomocí příkazu head jsme vytiskli pouze řádky, které nás zajímají. Argument-n poskytnutý příkazu head se používá k určení počtu řádků, které se mají číst. Velikosti jsou vytištěny v kilobajtech a měly by nám poskytnout představu o tom, jaká je naše celková, bezplatná a dostupná fyzická paměť.

předpokládejme, že píšeme bash skript, kde musíme zpracovat fyzickou velikost paměti RAM. Toho můžeme dosáhnout tím, že nejprve přečteme soubor /proc/meminfo a poté grep celkovou velikost paměti:

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

Nyní, pojďme uložit skript a učinit z něj spustitelný:

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

pomocí Správce úloh GUI

existuje celá řada správců úloh GUI, které můžeme použít ke kontrole využití CPU, RAM a sítě kromě správy procesů. Pojďme se rychle podívat na ty nejoblíbenější pro Linux.

7.1. GNOME System Monitor

GNOME System Monitor je výchozí správce úloh, který je dodáván s desktopovým prostředím GNOME. Pokud však provozujeme jiné desktopové prostředí, můžeme snadno vyhledat balíček gnome-system-monitor v našem úložišti distribučních balíčků. Jakmile je nainstalován, můžeme jej spustit z příkazového řádku:

$ gnome-system-monitor

po přechodu na kartu Zdroje můžeme vidět naši celkovou velikost paměti mimo jiné statistiky.

7.2. KSysGuard

KSysGuard je výchozí správce úloh vyvinutý komunitou KDE a ve výchozím nastavení je dodáván s KDE. Podobně, pokud používáme jiné desktopové prostředí, můžeme jej snadno nainstalovat do našeho systému hledáním balíčku ksysguard v úložišti balíčků. Po instalaci jej můžeme spustit příkazem ksysguard:

$ ksysguard

jakmile se ksysguard spustí, můžeme se vydat na kartu zatížení systému a zobrazit informace o paměti spolu s pěkným grafem.

závěr

v tomto článku jsme se podívali na různé příkazy a nástroje, které nám mohou pomoci zjistit velikost fyzické paměti našeho systému Linux.

pokryli jsme minimální bezplatný příkaz a jeho alternativní příkaz vmstat. Poté jsme pomocí horního příkazu zjistili různé systémové informace. Podívali jsme se také na nástroj dmidecode a na to, jak můžeme extrahovat informace o fyzické paměti z tabulky DMI.

poté jsme se dozvěděli, co je adresář /proc a jak můžeme číst soubor / proc / meminfo, abychom zkontrolovali celkovou velikost paměti RAM a použili ji ve skriptu bash. Nakonec jsme se dozvěděli o několika grafických správcích úloh a o tom, jak je můžeme použít ke kontrole využití paměti RAM a statistik.

pokud máte několik let zkušeností s ekosystémem Linuxu a máte zájem o sdílení těchto zkušeností s komunitou, podívejte se na naše pokyny pro příspěvky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.