Pamäť

Ako skontrolovať využitie pamäte na proces v systéme Linux

Ako skontrolovať využitie pamäte na proces v systéme Linux
V dnešnej dobe môže počítač spustiť veľa programov naraz. CPU nemá problém zvládnuť všetky tieto programy, pretože CPU má viac jadier na spracovanie viacerých úloh.

Každý z týchto programov beží ako jeden alebo viac procesov. Každý proces pre seba vyhradzuje určité množstvo pamäte RAM alebo pamäte. Je nevyhnutné, aby proces fungoval správne. Ak procesu sa nepodarí prideliť dostatok pamäte RAM alebo pamäte, proces nemožno vytvoriť a program nebude možné spustiť.

Jednou zo základných úloh, ktoré vo svojom počítači robíte, je teda skontrolovať, koľko pamäte alebo RAM (pamäť s náhodným prístupom) každý z procesov využíva. Pretože RAM alebo pamäť vášho počítača je obmedzená.

Predstavte si prípad, keď chcete spustiť nejaký program, ktorý zlyhá, pretože nemáte dostatok pamäte. Môžu to byť procesy, ktoré využívajú veľa pamäte, ktorú práve nepotrebujete. Tieto procesy môžete zabiť alebo zastaviť, aby ste uvoľnili RAM alebo pamäť, aby ste mohli spustiť dôležité programy.

V tomto článku vám ukážem, ako skontrolovať využitie pamäte každého z procesov bežiacich na vašom počítači so systémom Linux. Pre všetky ukážky v tomto článku budem používať Debian 9 Stretch. Malo by to však fungovať na všetkých moderných distribúciách Linuxu. Začnime.

Kontrola využitia pamäte pomocou príkazu ps:

Môžete použiť ps príkaz na kontrolu využitia pamäte všetkých procesov v systéme Linux. S týmto postupom je jeden problém. ps neukážte mi, koľko pamäte proces využíva vo formáte KB alebo MB, ale ukáže vám, koľko pamäte sa percentuálne využíva.

Využitie pamäte (v percentách) celého procesu prebiehajúceho v operačnom systéme Linux môžete skontrolovať pomocou nasledujúceho príkazu:

$ ps -o pid, užívateľ,% mem, príkazová os | triediť -b -k3 -r

Ako vidíte, všetky procesy s percentuálnym využitím pamäte sú zoradené zostupne (najskôr sú uvedené procesy využívajúce väčšinu pamäte).

Kontrola využitia pamäte procesmi pomocou pmap:

Môžete skontrolovať pamäť procesu alebo množiny procesov v ľudsky čitateľnom formáte (v kB alebo kilobajtoch) pomocou pmap príkaz. Všetko, čo potrebujete, je PID procesov, u ktorých chcete skontrolovať využitie pamäte.

Povedzme, že chcete skontrolovať, koľko pamäte využíva proces s PID 917. Ak to chcete urobiť, bežte pmap nasledovne:

$ sudo pmap 917

Ako vidíte, celková pamäť použitá procesom 917 je 516104 kB alebo kilobajtov. Tiež tu môžete vidieť, koľko pamäte využívajú knižnice a ďalšie súbory potrebné na spustenie procesu s PID 917.

Ak vám nezáleží na tom, koľko pamäte používajú knižnice alebo iné závislé súbory, spustite program pmap nasledovne:

$ sudo pmap 917 | chvost -n 1

Ako vidíte, na obrazovku sa vytlačí iba celková pamäť použitá procesom s PID 917.

Ak chcete, môžete to ďalej filtrovať pomocou awk a získate iba veľkosť v kB alebo kilobajtoch. Ak to chcete urobiť, bežte pmap nasledovne:

$ sudo pmap 917 | chvost -n 1 | awk '/ [0-9] K / tlačiť 2 $

Ako vidíte, vytlačí sa iba využitie pamäte v kB alebo kilobajtoch.

Teraz môžete tiež uviesť, koľko pamäte využíva viac procesov pomocou svojich PID s pmap nasledovne:

$ sudo pmap 917 531 | grep celkom

POZNÁMKA: Tu sú 917 a 531 ID procesu alebo PID. Týmto spôsobom môžete vložiť toľko PID, koľko chcete.

Použitie pmap na výpis využitia pamäte všetkých procesov v kilobajtoch:

V tejto časti vám ukážem, ako napísať svoj vlastný skript shellu, ktorý vypíše zoznam využitia pamäte všetkých procesov bežiacich vo vašom operačnom systéme Linux v ľudsky čitateľnom formáte (kilobajty alebo kB).

Najskôr vytvorte nový súbor sysmon vo vašom aktuálnom pracovnom adresári pomocou nasledujúceho príkazu:

$ touch sysmon

Teraz urobte súbor spustiteľným pomocou nasledujúceho príkazu:

$ chmod + x sysmon

sysmon je shell skript, ktorý zobrazí všetky bežiace procesy PID, MAJITEĽ, PAMÄŤ (v KB zostupne) a PRÍKAZ. Začnime.

Otvor sysmon skript s obľúbeným textovým editorom, ktorý použijem Kate.

Prvý príkaz, ktorý idem spustiť, mi teraz dá príkaz PID, MAJITEĽ a PRÍKAZ všetkých spustených procesov oddelených symbolom dvojbodky (:) a uložte ich do priečinka RAWIN premenná. Potom pretiahnite výstup a vytlačte ho na obrazovku.

Ako vidíte, dostávam správny výstup.

Teraz je čas spracovať každý riadok a uložiť informácie oddelené dvojbodkou do samostatných premenných. To som urobil na linkách 7, 8 a 9.

Ako vidíte, môžem tlačiť PID, MAJITEĽ a PRÍKAZ v mojom vlastnom formáte.

Teraz je čas načítať využitie pamäte každého PID. 10. riadok robí práve to.

Ako vidíte, všetko funguje perfektne. Teraz môžem tiež vytlačiť využitie pamäte každého procesu v kilobajtoch (KB).

Teraz zostáva iba naformátovať výstup tak, aby vyzeral pekne. Preferujem formát tabuľky. V riadku 5 sa vytlačí hlavička každého stĺpca tabuľky.

Nakoniec som tlačil PID, MAJITEĽ, PAMÄŤ (v KB) a PRÍKAZ každého procesu v tabuľkovom formáte pomocou riadku 14.

Ako vidíte, celkom dobre to funguje. Je tu malý problém, procesy nie sú správne zoradené zostupne podľa využitia pamäte.

Aby som to napravil, odstránil som ho triediť -bnr -k3 z riadku 3 a všetko zabalil do funkcie shell sysmon_main (). Potom nechal prácu s triedením na triediť príkaz.

Výsledný skript škrupiny vyzerá asi takto:

Ako vidíte, funguje to výborne.

Teraz to môžete presunúť niekam ako / usr / bin a vykonajte ho rovnako ako ostatné príkazy takto:

$ sudo mv -v sysmon / usr / bin

Vykonávanie sysmon:

Ďakujeme, že ste si prečítali tento článok.

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 ...