Kuinka tarkistaa muistin käyttö prosessia kohden Linuxissa

How Check Memory Usage Per Process Linux

Nykyään tietokone voi ajaa useita ohjelmia kerralla. Suorittimella ei ole ongelmia kaikkien näiden ohjelmien käsittelyssä, koska suorittimissa on useita ytimiä monitehtävien hoitamiseen.



Jokainen näistä ohjelmista toimii yhtenä tai useammana prosessina. Jokainen prosessi varaa jonkin verran RAM -muistia tai muistia itselleen. On tärkeää, että prosessi toimii oikein. Jos prosessi ei varaa tarpeeksi RAM -muistia tai muistia, prosessia ei voida luoda eikä ohjelma voi käynnistyä.



Joten yksi tietokoneen perustehtävistä on tarkistaa, kuinka paljon muistia tai RAM -muistia (Random Access Memory) jokainen prosessi käyttää. Koska tietokoneen RAM -muistia tai muistia on rajoitetusti.



Kuvittele tapaus, jossa haluat suorittaa jonkin ohjelman ja se epäonnistuu, koska sinulla ei ole tarpeeksi muistia. Voi olla, että jotkin prosessit käyttävät paljon muistia, jota et tarvitse juuri nyt. Voit tappaa tai pysäyttää nämä prosessit vapauttaaksesi RAM -muistia tai muistia, jotta voit käynnistää tärkeät ohjelmasi.

Tässä artikkelissa näytän sinulle, kuinka voit tarkistaa kunkin Linux -koneellasi käynnissä olevan prosessin muistin käytön. Käytän Debian 9 Stretchiä kaikkiin tämän artikkelin esittelyihin. Mutta sen pitäisi toimia kaikilla nykyaikaisilla Linux -jakeluilla. Aloitetaan.



Voit käyttää ps komento kaikkien Linux -prosessien muistin käytön tarkistamiseksi. Tässä menettelyssä on yksi ongelma. ps eivät todellakaan näytä kuinka paljon muistia prosessi käyttää KB- tai MB -muodossa, mutta se näyttää kuinka paljon muistia käytetään prosentteina.

Voit tarkistaa muistin käytön (prosentteina) kaikista Linux -käyttöjärjestelmässä käynnissä olevista prosesseista seuraavalla komennolla:

$ps -taipid, käyttäjä,%meemi,komentokirves| järjestellä -b -k3 -r

Kuten näette, kaikki prosessit, joissa muistin käyttö prosentteina on lueteltu laskevassa järjestyksessä (prosessit, jotka käyttävät suurinta osaa muistista, luetellaan ensin).

Prosessien muistin käytön tarkistaminen pmap -ohjelmalla:

Voit tarkistaa prosessin tai prosessisarjan muistin ihmisen luettavassa muodossa (KB: nä tai kilotavuna) pmap komento. Tarvitset vain niiden prosessien PID -koodit, joiden muistin käytön haluat tarkistaa.

Oletetaan, että haluat tarkistaa, kuinka paljon muistia PID 917 -prosessi käyttää. Tätä varten juokse pmap seuraavasti:

$sudopmap917

Kuten näette, prosessin 917 kokonaismuisti on 516104 kt tai kilotavua. Täältä näet myös kuinka paljon muistia kirjastot ja muut tiedostot käyttävät prosessin suorittamiseen PID 917: n avulla.

Jos et välitä siitä, kuinka paljon muistia kirjastot tai muut riippuvat tiedostot käyttävät, suorita sitten pmap seuraavasti:

$sudopmap917 | häntä -n 1

Kuten näette, vain PID 917: n prosessin käyttämä muisti tulostetaan näytölle.

Jos haluat, voit suodattaa tämän lisää awk ja saat vain koon KB: nä tai kilotavuina. Tätä varten juokse pmap seuraavasti:

$sudopmap917 | häntä -n 1 | awk ' / [0-9] K / {print $ 2}'

Kuten näet, vain muistin käyttö kilotavuina tai kilotavuina tulostetaan.

Nyt voit myös luetella, kuinka paljon muistia käyttävät useat prosessit, joissa käytetään PID -tunnuksiaan pmap seuraavasti:

$sudopmap917 531 | pitokaikki yhteensä

HUOMAUTUS: Tässä 917 ja 531 ovat prosessitunnuksia tai PID -tunnuksia. Voit asettaa niin monta PID -tunnusta kuin haluat tällä tavalla.

Pmapin käyttäminen kaikkien prosessien muistin käytön luetteloimiseksi kilotavuina:

Tässä osassa näytän sinulle, kuinka voit kirjoittaa oman komentosarjan luetteloon kaikkien Linux -käyttöjärjestelmässä käynnissä olevien prosessien muistin käytöstä ihmisen luettavassa muodossa (kilotavua tai kt).

Tee ensin uusi tiedosto sysmon nykyisessä työhakemistossasi seuraavalla komennolla:

$kosketussysmon

Tee nyt tiedosto suoritettavaksi seuraavalla komennolla:

$chmod+x sysmoni

sysmon on komentosarja, joka näyttää kaikki käynnissä olevat prosessit PID , OMISTAJA , MUISTI (KB: nä laskevassa järjestyksessä) ja KOMENTO . Aloitetaan.

Avaa sysmon aion käyttää käsikirjoitusta suosikkitekstieditorillasi Kate .

Nyt ensimmäinen komento, jonka aion suorittaa, antaa minulle PID , OMISTAJA ja KOMENTO kaikista käynnissä olevista prosesseista kaksoispiste (:) -merkillä erotettuna ja tallenna se RAWIN muuttuja. Kierrä sitten lähtö ja tulosta se näytölle.

Kuten näette, saan oikean tuloksen.

Nyt on aika käsitellä jokainen rivi, tallentaa kaksoispisteellä erotetut tiedot erillisiin muuttujiin. Näin tein linjoilla 7, 8 ja 9.

Kuten näette, voin tulostaa PID , OMISTAJA ja KOMENTO nyt omassa muodossaan.

Nyt on aika hakea kunkin PID -muistin käyttö. Linja 10 tekee juuri niin.

Kuten näette, kaikki toimii täydellisesti. Nyt voin tulostaa myös kunkin prosessin muistin käytön kilotavuina (kt).

Nyt ei muuta kuin muotoile tulostus näyttämään hyvältä. Pidän enemmän taulukkomuodosta. Rivi 5 tulostaa taulukon jokaisen sarakkeen otsikon.

Lopulta tulostin PID , OMISTAJA , MUISTI (kt) ja KOMENTO jokaisesta prosessista taulukkomuodossa käyttämällä riviä 14.

Kuten huomaat, se toimii aika hyvin. On kuitenkin pieni ongelma, prosesseja ei ole lajiteltu oikein laskevassa järjestyksessä muistin käytön mukaan.

Sen korjaamiseksi poistin lajittele -bnr -k3 riviltä 3 ja kääritty kaikki kuoritoimintoon sysmon_main () . Sitten jätettiin lajittelutyö järjestellä komento.

Lopullinen komentosarjan skripti näyttää suunnilleen tältä:

Kuten näette, se toimii loistavasti.

Nyt voit siirtää sen jonnekin /usr/bin ja suorita se aivan kuten muutkin komennot seuraavasti:

$sudo mv -vsysmon/usr/olen

Suoritus sysmon :

Kiitos tämän artikkelin lukemisesta.