Pamäť

Príkazy na správu pamäte Linux

Príkazy na správu pamäte Linux
Systémy UNIX / Linux obsahujú nástroj príkazového riadku takmer pre všetko. Patria sem aj programy na prácu s pamäťou. V tomto článku vám ukážeme výber príkazov, ktoré vám ako používateľom systému Linux prídu celkom vhod.

Zistite hardvér pomocou dmidecode

Automatická detekcia hardvéru vždy bola trochu ako lotéria, ale za posledné roky sa to zlepšilo, pretože mnoho výrobcov dokumentuje svoje výrobky podrobnejšie a má k dispozícii online aj konkrétne informácie. Ak sa chcete dozvedieť viac informácií o hardvéri týkajúcich sa pamäte RAM nainštalovanej vo vašom prístroji, použite dmidecode príkaz (balík pre Debian GNU / Linux, Ubuntu a Linux Mint: dmidecode).

Okrem ďalších informácií tento nástroj hlási podrobné údaje o nainštalovaných systémových komponentoch, ako sú procesor, základná doska a pamäť RAM. Informácie sú založené na rozhraní Desktop Management Interface (DMI) [1], čo je rámec, ktorý klasifikuje jednotlivé komponenty na počítači, notebooku alebo serveri abstrahovaním od týchto komponentov zo softvéru, ktorý ich spravuje [2]. Možnosť --typ pamäte sa vzťahuje na pamäťové zariadenia. Pre ďalšie triedy DMI si pozrite manuálnu stránku dmidecode.

# dmidecode --typ pamäte
# dmidecode 2.12
SMBIOS 2.7 prítomných.
Rukoväť 0x0007, DMI typ 16, 23 bajtov
Pole fyzickej pamäte
Umiestnenie: systémová doska alebo základná doska
Použitie: Systémová pamäť
Typ opravy chyby: Žiadny
Maximálna kapacita: 16 GB
Popisovač informácií o chybe: Neposkytuje sa
Počet zariadení: 1
Rukoväť 0x0008, DMI typ 17, 34 bajtov
Pamäťové zariadenie
Rukoväť poľa: 0x0007
Popisovač informácií o chybe: Neposkytuje sa
Celková šírka: 64 bitov
Šírka dát: 64 bitov
Veľkosť: 8192 MB
Tvarový faktor: SODIMM
Sada: žiadna
Lokátor: ChannelA-DIMM0
Bankový lokátor: BANKA 0
Typ: DDR3
Detail typu: synchrónny
Rýchlosť: 1 600 MHz
Výrobca: Samsung
Sériové číslo: 25252105
Značka diela: žiadna
Číslo dielu: M471B1G73DB0-YK0
Poradie: Neznáme
Konfigurovaná rýchlosť hodín: 1 600 MHz

Tento stroj je v súčasnosti vybavený 8G DDR3 RAM s nakonfigurovaným taktom 1 600 MHz. Ako vidíte, maximálna dostupná kapacita palubnej pamäte RAM je 16G, čo znamená, že ju možno rozšíriť o druhý 8G modul.

Grafické informácie o pamäti

V prípade, že chcete tieto informácie získať pomocou grafického rozhrania, mohli by vás zaujímať nástroje Hardinfo [3] a Hardware Lister (verzia GTK +) [4]. Na Debiane GNU / Linux, Ubuntu a Linux Mint sú tieto programy dostupné prostredníctvom balíkov hardinfo a lshw-gtk. Obrázok 2 zobrazuje užívateľské rozhranie Hardinfo, ktoré zobrazuje informácie o pamäti pri inštalácii Xubuntu.

Koľko pamäte je momentálne k dispozícii

Niekedy je menej viac. Na príkazovom riadku sú informácie týkajúce sa pamäte dostupné prostredníctvom servera zadarmo príkaz. V systémoch Debian GNU / Linux, Ubuntu a Linux Mint je tento program súčasťou balíka procps [5]. Obrázok 2 zobrazuje výstup v okne terminálu.

Ako výber z ďalších možností, zadarmo akceptuje rôzne parametre, ako napríklad:

Na obrázku 3 je výstup zobrazený v megabajtoch pomocou možnosti -m. Systém má 4G RAM, zatiaľ čo 725M sa v súčasnosti používa.

Informácie o pamäti z pohľadu jadra Linuxu

Vyššie uvedené nástroje sa spoliehajú na prvotné informácie, ktoré sa uchovávajú v proc súborovom systéme jadra Linuxu. Ak chcete zobraziť tieto podrobnosti, vyveďte obsah súboru / proc / meminfo pomocou kat obslužný program v termináli:

$ cat / proc / meminfo
MemTotal: 7888704 kB
MemFree: 302852 kB
MemAvailable: 448824 kB
Nárazníky: 17828 kB
V pamäti: 326104 kB
Vymenená cache: 69592 kB
Aktívne: 2497184 kB
Neaktívne: 650912 kB
Aktívne (anon): 2338748 kB
Neaktívne (anon): 525316 kB
Aktívne (súbor): 158436 kB
Neaktívne (súbor): 125596 kB
Nevyhnutné: 64 kB
Blokované: 64 kB
Celková výmena: 16150524 kB
SwapFree: 15668480 kB
Špinavé: 3008 kB
Odpis: 0 kB
AnonPages: 2774656 kB
Mapované: 4414752 kB
Shmem: 59900 kB
Doska: 130216 kB
SRelaimable: 61748 kB
ODMIETNUTIE: 68468 kB
KernelStack: 7328 kB
Tabuľky stránok: 42844 kB
NFS_Unstable: 0 kB
Odraziť: 0 kB
WritebackTmp: 0 kB
CommitLimit: 20094876 kB
Committed_AS: 10344988 kB
VmallocCelkom: 34359738367 kB
Vmalloc Použité: 367296 kB
VmallocChunk: 34359345768 kB
Poškodený hardvér: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Veľkosť stránky: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Viac štatistických informácií o využití procesora, pamäte a procesov nájdete v nástrojoch vmstat, a iostat (Debian balíčky procps a sysstat).

Práca s procesmi - ps, htop a pstree

Na zobrazenie aktívnych procesov vášho systému Linux použite ps príkaz. Výstup je zvyčajne zoradený podľa abecedy. Ale ps príkaz dokáže oveľa viac. Pomocou možností aux --triediť -rss výstup zoznamu procesov je zoradený podľa využitia pamäte v poradí zhora nadol. Obrázok 4 zobrazuje procesy, ktoré majú najvyššiu náročnosť na pamäť. Výstup je zoradený podľa šiesteho stĺpca s názvom RSS, ktorý skratkou Resident Set Size. Hodnota je uvedená v kilobajtoch.

Príkazy ps, pstree a htop sú úzko spojené z hľadiska informácií, ktoré tieto nástroje zobrazujú. Oboje pstree a htop zobraziť graf na vizualizáciu závislostí procesu. htop funguje ako interaktívna verzia, ktorá umožňuje prechádzať zoznamom procesov hore a dole. Obrázok 5 zobrazuje htop na desktopovom systéme s výberom procesov zoradených podľa konkrétneho využitia pamäte (5. stĺpec).

Hľadanie procesov, ktoré využívajú výmenu pamäte

Čím viac procesov sa spustí, tým viac pamäte sa súčasne použije. Akonáhle váš systém Linux vyčerpá nevyužité stránky s pamäťou, jadro Linuxu sa rozhodne vymeniť stránky z pamäte na disk pomocou metódy LRU (Least Recently Used). Ak chcete odpovedať na otázku, ktoré procesy využívajú swapovú pamäť a koľko sa konkrétne používa, môžete sa pozrieť na výstup top programu. V roku 2016 Erik Ljungstrom zverejnil krátky popis toho, ako tieto informácie získať a rozšíriť tento stĺpec až k výstupu hore [6]. Obrázok 6 zobrazuje tento výstup v systéme, ktorý má v pamäti RAM dostatok pamäte a v súčasnosti nepoužíva funkciu Swap.

Ďalej v roku 2011 už publikoval bash skript, ktorý vyhodnocuje informácie zo súborového systému proc tak, aby zobrazoval využitie swapového procesu podľa procesu [7]. Aj o 7 rokov neskôr, ktorý je už označený ako zastaraný, je skript stále vynikajúci a ukazuje, ako automatizovať úlohy v systéme Linux. Preto sme si istí, že je užitočné ukázať to tu ešte raz.

Výstup skriptu je nasledovný (spustiť ako koreň používateľ získa všetky údaje):

# ./ vymeniť.š
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 - (migrácia / 0)
PID = 10 - použitý swap: 0 - (strážny pes / 0)
PID = 11 - použitý swap: 0 - (strážny pes / 1)
PID = 12 - použitý swap: 0 - (migrácia / 1)
PID = 13 - použitý swap: 0 - (ksoftirqd / 1)
PID = 15 - použitý swap: 0 - (kworker / 1: 0H)
PID = 16 - použitý swap: 0 - (strážny pes / 2)
PID = 17 - použitý swap: 0 - (migrácia / 2)
PID = 18 - použitý swap: 0 - (ksoftirqd / 2)
PID = 20 - použitý swap: 0 - (kworker / 2: 0H)

#

Záver

Súbor nástrojov systému Linux obsahuje nekonečný zoznam dostupných programov, ktoré vám pomôžu analyzovať využitie pamäte vášho systému Linux. Iba sme sa krátko pozreli - od nespracovaných údajov až po predspracované informácie - všetko tam je. Stačí poznať svoje nástroje. Aby ste sa s nimi zoznámili, venujte im trochu času a hrajte sa s nimi.

Toto je časť 2 série o správe pamäte jadra Linuxu.  1. časť pojednáva o Swap pamäti, v tretej časti tejto série sa budeme zaoberať tým, ako optimalizovať využitie pamäte. To bude zahŕňať správu RAMDISKOV aj komprimovaných swapových súborov.

Odkazy a referencie

Séria správy pamäte Linux

Poďakovanie

Autor by chcel poďakovať Mandy Neumeyerovej a Geroldovi Rupprechtovi za podporu pri príprave tohto článku.

Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...
Hry Zadarmo a open source herné motory pre vývoj hier pre Linux
Zadarmo a open source herné motory pre vývoj hier pre Linux
Tento článok sa bude zaoberať zoznamom bezplatných a otvorených herných nástrojov, ktoré možno použiť na vývoj 2D a 3D hier v systéme Linux. Existuje ...