Paměť

Jak zkontrolovat využití paměti na proces v systému Linux

Jak zkontrolovat využití paměti na proces v systému Linux
V dnešní době může počítač spouštět mnoho programů najednou. CPU nemá problém se zpracováním všech těchto programů, protože CPU má více jader pro zpracování více úkolů.

Každý z těchto programů běží jako jeden nebo více procesů. Každý proces přiděluje určité množství paměti RAM nebo paměti pro sebe. Je nezbytné, aby proces fungoval správně. Pokud proces nedokáže přidělit dostatek paměti RAM nebo paměti, proces nelze vytvořit a program nebude možné spustit.

Takže jedním ze základních úkolů, které ve svém počítači děláte, je zkontrolovat, kolik paměti nebo RAM (paměť s náhodným přístupem) každý proces používá. Protože RAM nebo paměť vašeho počítače jsou omezené.

Představte si případ, kdy chcete spustit nějaký program a ten selže, protože nemáte dostatek paměti. Možná některé procesy využívají spoustu paměti, kterou právě teď nepotřebujete. Tyto procesy můžete zabít nebo zastavit, abyste uvolnili RAM nebo paměť, abyste mohli spustit důležité programy.

V tomto článku vám ukážu, jak zkontrolovat využití paměti každého z procesů běžících na vašem počítači se systémem Linux. Pro všechny ukázky v tomto článku budu používat Debian 9 Stretch. Mělo by to ale fungovat na všech moderních linuxových distribucích. Začněme.

Kontrola využití paměti pomocí příkazu ps:

Můžete použít ps příkaz ke kontrole využití paměti všech procesů v systému Linux. S tímto postupem je jeden problém. ps ve skutečnosti vám neukážou, kolik paměti proces používá ve formátu KB nebo MB, ale ukáže vám, kolik paměti se používá v procentech.

Využití paměti (v procentech) celého procesu běžícího na vašem operačním systému Linux můžete zkontrolovat pomocí následujícího příkazu:

$ ps -o pid, uživatel,% mem, příkaz ax | třídit -b -k3 -r

Jak vidíte, všechny procesy s využitím paměti v procentech jsou uvedeny v sestupném pořadí (Procesy využívající většinu paměti jsou uvedeny jako první).

Kontrola využití paměti procesů pomocí pmap:

Paměť procesu nebo sadu procesů v čitelném formátu (v kB nebo kilobajtech) můžete zkontrolovat pomocí pmap příkaz. Vše, co potřebujete, je PID procesů, u kterých chcete zkontrolovat využití paměti.

Řekněme, že chcete zkontrolovat, kolik paměti proces s PID 917 využívá. Chcete-li to udělat, spusťte pmap jak následuje:

$ sudo pmap 917

Jak vidíte, celková paměť použitá procesem 917 je 516104 kB nebo kilobajtů. Také zde můžete vidět, kolik paměti využívají knihovny a další soubory potřebné ke spuštění procesu s PID 917.

Pokud vás nezajímá, kolik paměti používají knihovny nebo jiné závislé soubory, spusťte pmap jak následuje:

$ sudo pmap 917 | ocas -n 1

Jak vidíte, na obrazovce se vytiskne pouze celková paměť použitá procesem s PID 917.

Pokud chcete, můžete to dále filtrovat pomocí awk a získejte pouze velikost v kB nebo kilobajtech. Chcete-li to udělat, spusťte pmap jak následuje:

$ sudo pmap 917 | ocas -n 1 | awk '/ [0-9] K / tisk 2 $

Jak vidíte, vytiskne se pouze využití paměti v kB nebo kilobajtech.

Nyní můžete také uvést, kolik paměti využívá více procesů pomocí svých PID s pmap jak následuje:

$ sudo pmap 917 531 | grep celkem

POZNÁMKA: Zde 917 a 531 jsou ID procesu nebo PID. Tímto způsobem můžete zadat tolik PID, kolik chcete.

Použití pmap k vypsání využití paměti všech procesů v kilobajtech:

V této části vám ukážu, jak napsat vlastní skript shellu, který vypisuje využití paměti všech procesů běžících na vašem operačním systému Linux v čitelném formátu (kilobajtech nebo kB).

Nejprve vytvořte nový soubor sysmon ve vašem aktuálním pracovním adresáři pomocí následujícího příkazu:

$ touch sysmon

Nyní vytvořte soubor spustitelným pomocí následujícího příkazu:

$ chmod + x sysmon

sysmon je shell skript, který zobrazí všechny spuštěné procesy PID, MAJITEL, PAMĚŤ (v KB sestupně) a PŘÍKAZ. Začněme.

Otevři sysmon skript s oblíbeným textovým editorem, který použiji Kate.

Nyní mi první příkaz, který spustím, dá PID, MAJITEL a PŘÍKAZ všech spuštěných procesů oddělených symbolem dvojtečky (:) a uložte jej do souboru RAWIN proměnná. Poté proveďte smyčku výstupem a vytiskněte jej na obrazovku.

Jak vidíte, dostávám správný výstup.

Nyní je čas zpracovat každý řádek a uložit informace oddělené dvojtečkou do samostatných proměnných. To jsem udělal na linkách 7, 8 a 9.

Jak vidíte, mohu tisknout PID, MAJITEL a PŘÍKAZ nyní v mém vlastním formátu.

Nyní je čas načíst využití paměti každého PID. Řádek 10 dělá právě to.

Jak vidíte, vše funguje perfektně. Nyní mohu také vytisknout využití paměti každého procesu v kilobajtech (KB).

Nyní zbývá jen formátovat výstup, aby vypadal hezky. Dávám přednost formátu tabulky. Řádek 5 vytiskne záhlaví každého sloupce tabulky.

Nakonec jsem vytiskl PID, MAJITEL, PAMĚŤ (v KB) a PŘÍKAZ každého procesu v tabulkovém formátu pomocí řádku 14.

Jak vidíte, docela dobře to funguje. Existuje však trochu problém, procesy nejsou správně seřazeny v sestupném pořadí podle využití paměti.

Abych to napravil, odstranil jsem třídit -bnr -k3 z řádku 3 a zabalil vše do funkce shellu sysmon_main (). Pak nechal třídění na třídit příkaz.

Konečný skript prostředí vypadá asi takto:

Jak vidíte, funguje to skvěle.

Nyní jej můžete přesunout někam jako / usr / bin a proveďte jej stejně jako ostatní příkazy následujícím způsobem:

$ sudo mv -v sysmon / usr / bin

Provádění sysmon:

Děkujeme za přečtení tohoto článku.

Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...
Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...
Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...