Kā pārbaudīt atmiņas izmantošanu vienā procesā Linux

How Check Memory Usage Per Process Linux



Mūsdienās dators var vienlaikus darbināt daudzas programmas. CPU nav problēmu ar visu šo programmu apstrādi, jo centrālajiem procesoriem ir vairāki kodoli, lai veiktu vairāku uzdevumu veikšanu.

Katra no šīm programmām darbojas kā viens vai vairāki procesi. Katrs process sev piešķir kādu RAM vai atmiņas daudzumu. Ir svarīgi, lai process darbotos pareizi. Ja process nespēj piešķirt pietiekami daudz RAM vai atmiņas, procesu nevar izveidot un programma nevarēs startēt.







Tātad, viens no pamatuzdevumiem, ko veicat savā datorā, ir pārbaudīt, cik daudz atmiņas vai RAM (brīvpiekļuves atmiņas) izmanto katrs process. Tā kā datora RAM vai atmiņa ir ierobežota.



Iedomājieties gadījumu, kad vēlaties palaist kādu programmu un tā neizdodas, jo jums nav pietiekami daudz atmiņas. Iespējams, daži procesi izmanto daudz atmiņas, kas jums šobrīd nav nepieciešama. Jūs varat nogalināt vai apturēt šos procesus, lai atbrīvotu RAM vai atmiņu, lai varētu sākt savas svarīgās programmas.



Šajā rakstā es jums parādīšu, kā pārbaudīt atmiņas izmantošanu katrā no procesiem, kas darbojas jūsu Linux datorā. Visiem demonstrējumiem šajā rakstā es izmantošu Debian 9 Stretch. Bet tam vajadzētu darboties jebkurā mūsdienu Linux izplatīšanā. Sāksim.





Jūs varat izmantot ps komandu, lai pārbaudītu visu Linux atmiņas procesu izmantošanu. Ar šo procedūru ir viena problēma. ps īsti nerāda, cik daudz atmiņas process izmanto KB vai MB formātā, bet tas parādīs, cik daudz atmiņas tiek izmantots procentos.

Jūs varat pārbaudīt atmiņas izmantošanu (procentos) no visiem procesiem, kas darbojas jūsu Linux operētājsistēmā, izmantojot šādu komandu:



$ps -vaipid, lietotājs,%meme,komanducirvis| kārtot -b -k3 -r

Kā redzat, visi procesi ar atmiņas izmantošanu procentos tiek uzskaitīti dilstošā secībā (vispirms tiek uzskaitīti procesi, kas izmanto lielāko daļu atmiņas).

Procesu atmiņas lietojuma pārbaude ar pmap:

Jūs varat pārbaudīt procesa vai procesu kopas atmiņu cilvēka lasāmā formātā (KB vai kilobaitos) ar pmap komandu. Viss, kas Jums nepieciešams, ir to procesu PID, kuru atmiņu vēlaties izmantot.

Pieņemsim, ka vēlaties pārbaudīt, cik daudz atmiņas izmanto process ar PID 917. Lai to izdarītu, skrien pmap sekojoši:

$sudopmap917

Kā redzat, kopējā procesa 917 izmantotā atmiņa ir 516104 KB vai kilobaiti. Šeit varat arī redzēt, cik daudz atmiņas izmanto bibliotēkas un citi faili, kas nepieciešami procesa palaišanai ar PID 917.

Ja jums nav svarīgi, cik daudz atmiņas izmanto bibliotēkas vai citi atkarīgie faili, tad palaidiet pmap sekojoši:

$sudopmap917 | asti -n 1

Kā redzat, ekrānā tiek drukāta tikai kopējā atmiņas daļa, ko izmanto process ar PID 917.

Ja vēlaties, varat to tālāk filtrēt, izmantojot awk un iegūstiet tikai lielumu KB vai kilobaitos. Lai to izdarītu, skrien pmap sekojoši:

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

Kā redzat, tiek drukāts tikai atmiņas lietojums KB vai kilobaitos.

Tagad varat arī uzskaitīt, cik daudz atmiņas izmanto vairāki procesi, izmantojot savus PID pmap sekojoši:

$sudopmap917 531 | satvēriensKopā

PIEZĪME: Šeit 917 un 531 ir procesa ID vai PID. Šādā veidā varat ievietot tik daudz PID, cik vēlaties.

Pmap izmantošana, lai uzskaitītu visu procesu atmiņas izmantošanu kilobaitos:

Šajā sadaļā es parādīšu, kā uzrakstīt savu čaulas skriptu, lai uzskaitītu visu jūsu Linux operētājsistēmā notiekošo procesu atmiņas izmantošanu cilvēka lasāmā formātā (kilobaiti vai KB).

Vispirms izveidojiet jaunu failu Sistēma pašreizējā darba direktorijā ar šādu komandu:

$pieskartiesSistēma

Tagad padariet failu izpildāmu ar šādu komandu:

$chmod+x sistēma

Sistēma ir čaulas skripts, kas parādīs visus darbojošos procesus PID , SAIMNIEKS , ATMIŅA (KB dilstošā secībā) un KOMANDĒT . Sāksim.

Atveriet Sistēma skriptu ar savu iecienītāko teksta redaktoru, es izmantošu Keita .

Tagad pirmā komanda, kuru es izpildīšu, man dos PID , SAIMNIEKS un KOMANDĒT no visiem darbības procesiem, kas atdalīti ar kolu (:), un saglabājiet to RAWIN mainīgais. Pēc tam veiciet izvades cilpu un izdrukājiet to ekrānā.

Kā redzat, es saņemu pareizo rezultātu.

Tagad ir pienācis laiks apstrādāt katru rindu, uzglabāt ar kolu norobežoto informāciju atsevišķos mainīgos. To es darīju 7., 8. un 9. rindā.

Kā redzat, es varu drukāt PID , SAIMNIEKS un KOMANDĒT tagad savā formātā.

Tagad ir pienācis laiks iegūt katra PID atmiņas lietojumu. 10. līnija to dara.

Kā redzat, viss darbojas perfekti. Tagad es varu arī izdrukāt katra procesa atmiņas izmantošanu kilobaitos (KB).

Tagad atliek tikai formatēt izvadi, lai tas izskatītos jauki. Es dodu priekšroku tabulas formātam. 5. rindā tiek izdrukāta katras tabulas kolonnas galvene.

Visbeidzot, es drukāju PID , SAIMNIEKS , ATMIŅA (KB) un KOMANDĒT katru procesu tabulas formātā, izmantojot 14. rindu.

Kā redzat, tas darbojas diezgan labi. Tomēr ir neliela problēma, procesi nav pareizi sakārtoti dilstošā secībā pēc atmiņas izmantošanas.

Lai to labotu, es noņēmu kārtot -bnr -k3 no 3. rindas un visu ietin čaulas funkcijā sysmon_main () . Pēc tam šķirošanas darbu atstāja kārtot komandu.

Pēdējais apvalka skripts izskatās apmēram šādi:

Kā redzat, tas darbojas lieliski.

Tagad jūs varat to pārvietot uz kaut kur līdzīgu /usr/bin un izpildiet to tāpat kā citas komandas šādi:

$sudo mv -vSistēma/usr/esmu

Izpildīšana Sistēma :

Paldies, ka izlasījāt šo rakstu.