Paměť

Příkazy pro správu paměti Linux

Příkazy pro správu paměti Linux
Systémy UNIX / Linux obsahují nástroj příkazového řádku téměř pro všechno. To zahrnuje také programy pro zpracování paměti. V tomto článku vám ukážeme výběr příkazů, které vám jako uživateli Linuxu přijdou docela užitečné.

Zjistěte hardware pomocí dmidecode

Automatická detekce hardwaru byla vždy trochu jako loterie, ale v posledních letech se to zlepšilo, protože mnoho výrobců dokumentuje své výrobky podrobněji a mají k dispozici také konkrétní informace online. Chcete-li zjistit informace o hardwaru týkající se paměti RAM nainstalované ve vašem zařízení, použijte dmidecode příkaz (balíček pro Debian GNU / Linux, Ubuntu a Linux Mint: dmidecode).

Tento nástroj mimo jiné hlásí podrobná data o nainstalovaných systémových komponentách, jako je procesor, základní deska a RAM. Tyto informace jsou založeny na rozhraní DMI (Desktop Management Interface) [1], což je rámec, který klasifikuje jednotlivé komponenty na ploše, notebooku nebo serveru tak, že tyto komponenty abstrahuje od softwaru, který je spravuje [2]. Možnost --typ paměti označuje paměťová zařízení. Pro ostatní třídy DMI se podívejte na manuální stránku dmidecode.

# dmidecode - paměť typu
# dmidecode 2.12
SMBIOS 2.7 přítomen.
Popisovač 0x0007, DMI typ 16, 23 bajtů
Pole fyzické paměti
Umístění: základní deska nebo základní deska
Použití: Systémová paměť
Typ opravy chyby: Žádný
Maximální kapacita: 16 GB
Popisovač chybových informací: Není k dispozici
Počet zařízení: 1
Popisovač 0x0008, DMI typ 17, 34 bajtů
Paměťové zařízení
Rukojeť pole: 0x0007
Popisovač chybových informací: Není k dispozici
Celková šířka: 64 bitů
Šířka dat: 64 bitů
Velikost: 8192 MB
Provedení: SODIMM
Sada: Žádná
Vyhledávač: ChannelA-DIMM0
Bankovní lokátor: BANKA 0
Typ: DDR3
Detail typu: Synchronní
Rychlost: 1600 MHz
Výrobce: Samsung
Sériové číslo: 25252105
Značka majetku: Žádná
Číslo dílu: M471B1G73DB0-YK0
Hodnocení: Neznámý
Konfigurovaná rychlost hodin: 1600 MHz

Tento stroj je aktuálně vybaven 8G DDR3 RAM s konfigurovanou rychlostí 1 600 MHz. Jak vidíte, maximální dostupná kapacita palubní RAM je 16G, což znamená, že ji lze rozšířit o druhý 8G modul.

Grafické informace o paměti

V případě, že pro získání těchto informací dáváte přednost grafickému rozhraní, mohly by vás zajímat nástroje Hardinfo [3] a Hardware Lister (verze GTK +) [4]. Na Debianu GNU / Linux, Ubuntu a Linux Mint jsou tyto programy dostupné prostřednictvím balíčků hardinfo a lshw-gtk. Obrázek 2 ukazuje uživatelské rozhraní Hardinfo zobrazující informace o paměti při instalaci Xubuntu.

Kolik paměti je aktuálně k dispozici

Někdy je méně více. Na příkazovém řádku jsou informace týkající se paměti dostupné přes volný, uvolnit příkaz. V systémech Debian GNU / Linux, Ubuntu a Linux Mint je tento program součástí balíčku procps [5]. Obrázek 2 ukazuje výstup v okně terminálu.

Jako výběr z dalších možností, volný, uvolnit přijímá různé parametry, jako například:

Na obrázku 3 je výstup zobrazen v megabajtech pomocí možnosti -m. Systém má 4G RAM, zatímco 725M se aktuálně používá.

Informace o paměti z pohledu jádra Linuxu

Výše uvedené nástroje spoléhají na nezpracované informace, které jsou uchovávány v souborovém systému proc jádra Linuxu. Chcete-li zobrazit tyto podrobnosti, odešlete obsah souboru / proc / meminfo za použití kočka nástroj v terminálu:

$ cat / proc / meminfo
MemTotal: 7888704 kB
MemFree: 302852 kB
MemAvailable: 448824 kB
Vyrovnávací paměti: 17828 kB
V mezipaměti: 326104 kB
Vyměnit mezipaměť: 69592 kB
Aktivní: 2497184 kB
Neaktivní: 650912 kB
Aktivní (anon): 2338748 kB
Neaktivní (anon): 525316 kB
Aktivní (soubor): 158436 kB
Neaktivní (soubor): 125596 kB
Nevyhnutelné: 64 kB
Blokováno: 64 kB
SwapCelkem: 16150524 kB
SwapFree: 15668480 kB
Špinavé: 3008 kB
Zpětný zápis: 0 kB
AnonPages: 2774656 kB
Mapováno: 4414752 kB
Shmem: 59900 kB
Deska: 130216 kB
SReclaimable: 61748 kB
ODHLÁŠENÍ: 68468 kB
KernelStack: 7328 kB
Tabulky stránek: 42844 kB
NFS_Unstable: 0 kB
Odrazit: 0 kB
WritebackTmp: 0 kB
CommitLimit: 20094876 kB
Committed_AS: 10344988 kB
VmallocCelkem: 34359738367 kB
Vmalloc Použito: 367296 kB
VmallocChunk: 34359345768 kB
Poškozený hardware: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Velikost stránky: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Další statistické informace týkající se využití procesoru, paměti a procesů najdete v nástrojích vmstat, a iostat (Balíčky Debianu procps a sysstat).

Práce s procesy - ps, htop a pstree

Chcete-li zobrazit aktivní procesy ve vašem systému Linux, použijte ps příkaz. Výstup je obvykle seřazen abecedně. Ale ps příkaz dokáže mnohem víc. Pomocí možností aux --třídit -rss výstup seznamu procesů je seřazen podle využití paměti v pořadí shora dolů. Obrázek 4 ukazuje procesy, které mají nejvyšší nároky na paměť. Výstup je seřazen podle 6. sloupce s názvem RSS, který zkracuje velikost Resident Set. Hodnota je uvedena v kilobajtech.

Příkazy ps, pstree a htop jsou úzce spjaty z hlediska informací, které tyto nástroje zobrazují. Oba pstree a htop zobrazit graf pro vizualizaci závislostí procesu. htop funguje jako interaktivní verze, která umožňuje posouvat seznam procesů nahoru a dolů. Obrázek 5 ukazuje htop na desktopovém systému s výběrem procesů seřazených podle jejich konkrétního využití paměti (5. sloupec).

Nalezení procesů využívajících paměť Swap

Čím více procesů je spuštěno, tím více paměti je současně používáno. Jakmile váš systém Linux vyčerpá nepoužívané stránky paměti, jádro Linuxu se rozhodne vyměnit stránky paměti na disk pomocí metody LRU (Least Recently Used). Chcete-li odpovědět na otázku, které procesy používají swapovou paměť a kolik se používá konkrétně, můžete se podívat na výstup špičkového programu. V roce 2016 zveřejnil Erik Ljungstrom krátký popis toho, jak tyto informace načíst a rozšířit tento sloupec na výstup nahoře [6]. Obrázek 6 ukazuje tento výstup v systému, který má v paměti RAM dostatek stránek paměti a aktuálně nepoužívá Swap.

Kromě toho již v roce 2011 publikoval bash skript, který vyhodnocuje informace ze systému souborů proc a zobrazuje využití swapového procesu po procesu [7]. I o 7 let později a již popsaný jako zastaralý je skript stále vynikající a ukazuje, jak automatizovat úkoly v systému Linux. Proto jsme si jisti, že je užitečné to zde ještě jednou ukázat.

Výstup skriptu je následující (spustit jako vykořenit uživatel načíst úplná data):

# ./ vyměnit.sh
PID = 1 - použitý swap: 0 - (systemd)
PID = 2 - použitý swap: 0 - (kthreadd)
PID = 3 - použitý swap: 0 - (ksoftirqd / 0)
PID = 5 - Použitý swap: 0 - (kworker / 0: 0H)
PID = 6 - Použitý swap: 0 - (kworker / u16: 0)
PID = 7 - Použitý swap: 0 - (rcu_sched)
PID = 8 - Použitý swap: 0 - (rcu_bh)
PID = 9 - Použitý swap: 0 - (migrace / 0)
PID = 10 - Použitý swap: 0 - (hlídací pes / 0)
PID = 11 - Použitý swap: 0 - (hlídací pes / 1)
PID = 12 - Použitý swap: 0 - (migrace / 1)
PID = 13 - Použitý swap: 0 - (ksoftirqd / 1)
PID = 15 - Použitý swap: 0 - (kworker / 1: 0H)
PID = 16 - Použitý swap: 0 - (hlídací pes / 2)
PID = 17 - Použitý swap: 0 - (migrace / 2)
PID = 18 - Použitý swap: 0 - (ksoftirqd / 2)
PID = 20 - Použitý swap: 0 - (kworker / 2: 0H)

#

Závěr

Sada nástrojů pro Linux obsahuje nekonečný seznam dostupných programů, které vám pomohou analyzovat využití paměti vašeho systému Linux. Jen jsme měli krátký pohled - od nezpracovaných dat až po předzpracované informace - vše tam je. Prostě znáte své nástroje. Seznámit se s nimi, věnovat jim trochu času a hrát si s nimi.

Toto je část 2 série o správě paměti jádra Linuxu.  Část 1 pojednává o Swap paměti, v části třetí této série budeme diskutovat o tom, jak optimalizovat využití paměti. To bude zahrnovat správu ramdisků i komprimovaných odkládacích souborů.

Odkazy a reference

Řada pro správu paměti Linux

Poděkování

Autor by rád poděkoval Mandy Neumeyer a Geroldovi Rupprechtovi za podporu při přípravě tohoto článku.

Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...
Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...