Minne

Hur man kontrollerar minnesanvändning per process på Linux

Hur man kontrollerar minnesanvändning per process på Linux
Dessa dagar kan en dator köra många program samtidigt. CPU: n har inga problem att hantera alla dessa program eftersom processorer har flera kärnor för att hantera multitasking.

Var och en av dessa program körs som en eller flera processer. Varje process tilldelar en viss mängd RAM eller minne åt sig själv. Det är viktigt att processen fungerar korrekt. Om en process misslyckas med att tilldela tillräckligt med RAM eller minne kan inte processen skapas och programmet kan inte starta.

Så en av de grundläggande uppgifterna du gör på din dator är att kontrollera hur mycket minne eller RAM (Random Access Memory) varje process använder. Eftersom RAM eller minne på din dator är begränsat.

Föreställ dig ett fall där du vill köra något program och det misslyckas eftersom du inte har tillräckligt med minne. Det kan vara några av processerna som använder mycket minne som du inte behöver just nu. Du kan döda eller stoppa dessa processer för att frigöra RAM eller minne så att du kan starta dina viktiga program.

I den här artikeln kommer jag att visa dig hur du kontrollerar minnesanvändningen för var och en av processerna som körs på din Linux-maskin. Jag kommer att använda Debian 9 Stretch för hela demonstrationen i den här artikeln. Men det borde fungera på alla moderna Linux-distributioner. Låt oss börja.

Kontrollera minnesanvändning med ps-kommando:

Du kan använda ps kommando för att kontrollera minnesanvändning av alla processer på Linux. Det finns ett problem med denna procedur. ps visar dig inte riktigt hur mycket minne en process använder i KB- eller MB-format, men det visar hur mycket minne som används i procent.

Du kan kontrollera minnesanvändningen (i procent) av hela processen som körs på ditt Linux-operativsystem med följande kommando:

$ ps -o pid, användare,% mem, kommandoax | sortera -b -k3 -r

Som du kan se listas alla processer med minnesanvändning i procent i fallande ordning (Processerna som använder det mesta av minnet listas först).

Kontrollera minnesanvändning av processer med pmap:

Du kan kontrollera minnet från en process eller en uppsättning processer i läsbart format (i KB eller kilobyte) med pmap kommando. Allt du behöver är PID för de processer du vill kontrollera minnesanvändningen av.

Låt oss säga att du vill kontrollera hur mycket minne processen med PID 917 använder. För att göra det, kör pmap som följer:

$ sudo pmap 917

Som du kan se är det totala minnet som används av processen 917 516104 kB eller kilobyte. Du kan också se hur mycket minne biblioteken och andra filer som krävs för att köra processen med PID 917 också använder här.

Om du inte bryr dig om hur mycket minne biblioteken eller andra beroende filer använder, kör sedan pmap som följer:

$ sudo pmap 917 | svans -n 1

Som du kan se skrivs bara ut det totala minnet som används av processen med PID 917 på skärmen.

Om du vill kan du ytterligare filtrera detta med awk och få bara storleken i KB eller kilobytes. För att göra det, kör pmap som följer:

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

Som du kan se skrivs bara minnesanvändningen i KB eller kilobytes ut.

Nu kan du också lista hur mycket minne som används av flera processer som använder deras PID med pmap som följer:

$ sudo pmap 917 531 | grep totalt

NOTERA: Här är 917 och 531 process-ID eller PID. Du kan sätta så många PID som du vill på det här sättet.

Använda pmap för att lista minnesanvändning av alla processer i kilobyte:

I det här avsnittet kommer jag att visa dig hur du skriver ditt eget skalskript för att lista minnesanvändning av alla processer som körs på ditt Linux-operativsystem i läsbart format (kilobytes eller KB).

Skapa först en ny fil sysmon i din nuvarande arbetskatalog med följande kommando:

$ touch sysmon

Gör nu filen körbar med följande kommando:

$ chmod + x sysmon

sysmon är skalskriptet som visar alla pågående processer PID, ÄGARE, MINNE (i KB i fallande ordning) och KOMMANDO. Låt oss börja.

Öppna sysmon skript med din favorittextredigerare, ska jag använda Kate.

Nu kommer det första kommandot jag ska köra att ge mig PID, ÄGARE och KOMMANDO av alla körprocesser åtskilda av kolon (:) och lagra den i RAWIN variabel. Gå sedan igenom utgången och skriv ut den på skärmen.

Som du kan se får jag rätt utdata.

Nu är det dags att bearbeta varje rad, lagra avgränsad koloninformation i separata variabler. Det var vad jag gjorde på rad 7, 8 och 9.

Som du kan se kan jag skriva ut PID, ÄGARE och KOMMANDO i mitt eget format nu.

Nu är det dags att hämta minnesanvändning av varje PID. Linje 10 gör just det.

Som du kan se fungerar allt perfekt. Nu kan jag också skriva ut minnesanvändning av varje process i kilobyte (KB).

Nu är det bara att formatera produktionen så att den ser snygg ut. Jag föredrar bordsformat. Rad 5 skriver ut rubriken för varje kolumn i tabellen.

Slutligen skrev jag ut PID, ÄGARE, MINNE (i KB) och KOMMANDO av varje process i ett tabellformat med hjälp av rad 14.

Som du ser fungerar det ganska bra. Det finns dock lite problem, processerna sorteras inte korrekt i fallande ordning efter minnesanvändning.

För att fixa det tog jag bort sortera -bnr -k3 från rad 3 och lindade allt i en skalfunktion sysmon_main (). Lämna sedan jobbet med att sortera till sortera kommando.

Det slutliga skalskriptet ser ungefär så här ut:

Som du kan se fungerar det bra.

Nu kan du flytta den till någonstans som / usr / bin och kör det precis som andra kommandon enligt följande:

$ sudo mv -v sysmon / usr / bin

Exekverar sysmon:

Tack för att du läste den här artikeln.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...