Geheugen

Hoe het geheugengebruik per proces op Linux te controleren

Hoe het geheugengebruik per proces op Linux te controleren
Tegenwoordig kan een computer veel programma's tegelijk uitvoeren. De CPU heeft geen probleem met het verwerken van al deze programma's omdat CPU's meerdere kernen hebben om multitasking aan te kunnen.

Elk van deze programma's wordt uitgevoerd als een of meer processen. Elk proces wijst een hoeveelheid RAM of geheugen toe aan zichzelf. Het is essentieel voor het correct functioneren van het proces. Als een proces niet voldoende RAM of geheugen toewijst, kan het proces niet worden gemaakt en kan het programma niet starten.

Dus een van de basistaken die u op uw computer uitvoert, is controleren hoeveel geheugen of RAM (Random Access Memory) elk proces gebruikt. Omdat RAM of geheugen van uw computer beperkt is.

Stel je een geval voor waarin je een programma wilt uitvoeren en het mislukt omdat je niet genoeg geheugen hebt. Misschien gebruiken sommige processen veel geheugen dat je nu niet nodig hebt. U kunt deze processen doden of stoppen om RAM of geheugen vrij te maken, zodat u uw belangrijke programma's kunt starten.

In dit artikel laat ik je zien hoe je het geheugengebruik van elk van de processen die op je Linux-machine draaien, kunt controleren. Ik zal Debian 9 Stretch gebruiken voor alle demonstraties in dit artikel. Maar het zou moeten werken op alle moderne Linux-distributies. Laten we beginnen.

Geheugengebruik controleren met ps-opdracht:

U kunt de ps commando om het geheugengebruik van alle processen op Linux te controleren. Er is één probleem met deze procedure:. ps laat je niet echt zien hoeveel geheugen een proces gebruikt in KB- of MB-formaat, maar het zal je laten zien hoeveel geheugen in procenten wordt gebruikt.

U kunt het geheugengebruik (in percentage) van alle processen die op uw Linux-besturingssysteem worden uitgevoerd, controleren met de volgende opdracht:

$ ps -o pid,gebruiker,%mem,opdracht ax | sorteer -b -k3 -r

Zoals u kunt zien, worden alle processen met geheugengebruik in procenten weergegeven in aflopende volgorde (de processen die het grootste deel van het geheugen gebruiken, worden eerst weergegeven).

Geheugengebruik van processen controleren met pmap:

U kunt het geheugen van een proces of een reeks processen in een voor mensen leesbaar formaat (in KB of kilobytes) controleren met pmap opdracht. Het enige dat u nodig hebt, is de PID van de processen waarvan u het geheugengebruik wilt controleren.

Laten we zeggen dat u wilt controleren hoeveel geheugen het proces met PID 917 gebruikt. Om dat te doen, ren pmap als volgt:

$ sudo pmap 917

Zoals u kunt zien, is het totale geheugen dat door proces 917 wordt gebruikt 516104 KB of kilobytes. U kunt hier ook zien hoeveel geheugen de bibliotheken en andere bestanden gebruiken die nodig zijn om het proces met PID 917 uit te voeren.

Als het je niet uitmaakt hoeveel geheugen de bibliotheken of andere afhankelijke bestanden gebruiken, voer dan pmap als volgt:

$ sudo pmap 917 | staart -n 1

Zoals u kunt zien, wordt alleen het totale geheugen dat wordt gebruikt door het proces met PID 917 op het scherm afgedrukt printed.

Als je wilt, kun je dit verder filteren met awk en krijg alleen de grootte in KB of kilobytes. Om dat te doen, ren pmap als volgt:

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

Zoals u kunt zien, wordt alleen het geheugengebruik in KB of kilobytes afgedrukt.

Nu kunt u ook aangeven hoeveel geheugen wordt gebruikt door meerdere processen met behulp van hun PID's met pmap als volgt:

$ sudo pmap 917 531 | grep totaal

OPMERKING: Hier zijn 917 en 531 proces-ID's of PID's. U kunt op deze manier zoveel PID's plaatsen als u wilt.

Pmap gebruiken om geheugengebruik van alle processen in kilobytes weer te geven:

In deze sectie laat ik u zien hoe u uw eigen shellscript schrijft om het geheugengebruik van alle processen die op uw Linux-besturingssysteem worden uitgevoerd in een voor mensen leesbaar formaat (kilobytes of KB) op te sommen.

Maak eerst een nieuw bestand sysmon in uw huidige werkmap met het volgende commando:

$ raak sysmon

Maak het bestand nu uitvoerbaar met het volgende commando:

$ chmod +x sysmon

sysmon is het shellscript dat alle lopende processen weergeeft PID, EIGENAAR, GEHEUGEN (in KB in aflopende volgorde) en OPDRACHT. Laten we beginnen.

Open de sysmon script met je favoriete teksteditor, ik ga gebruiken Kate.

Nu, het eerste commando dat ik ga uitvoeren, geeft me de PID, EIGENAAR en OPDRACHT van alle lopende processen gescheiden door een dubbele punt (:) symbool en sla het op in de RAWIN variabele. Loop vervolgens door de uitvoer en print deze op het scherm.

Zoals je kunt zien, krijg ik de juiste uitvoer.

Nu is het tijd om elke regel te verwerken, de door dubbele punten gescheiden informatie op te slaan in afzonderlijke variabelen. Dat deed ik op regel 7, 8 en 9 and.

Zoals je kunt zien, kan ik afdrukken PID, EIGENAAR en OPDRACHT nu in mijn eigen formaat.

Nu is het tijd om het geheugengebruik van elke PID op te halen. Lijn 10 doet precies dat.

Zoals je kunt zien, werkt alles perfect. Nu kan ik het geheugengebruik van elk proces ook in kilobytes (KB) afdrukken.

Nu hoeft u alleen nog de uitvoer te formatteren om er mooi uit te zien. Ik geef de voorkeur aan tabelindeling. Regel 5 drukt de kop van elke kolom van de tabel af.

Eindelijk heb ik geprint PID, EIGENAAR, GEHEUGEN (in KB) en OPDRACHT van elk proces in een tabelformaat met behulp van regel 14.

Zoals je kunt zien, werkt het best goed. Er is echter een klein probleempje, de processen zijn niet correct gesorteerd in aflopende volgorde op geheugengebruik.

Om dat op te lossen, heb ik verwijderd sort -bnr -k3 van regel 3 en verpakt alles in een shell-functie sysmon_main(). Daarna de taak van het sorteren overgelaten aan de soort opdracht.

Het uiteindelijke shellscript ziet er ongeveer zo uit:

Zoals je kunt zien, werkt het geweldig.

Nu kun je het ergens naartoe verplaatsen zoals /usr/bin en voer het als volgt uit, net als andere opdrachten:

$ sudo mv -v sysmon /usr/bin

uitvoeren sysmon:

Bedankt voor het lezen van dit artikel.

De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...
Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...