లైనక్స్‌లో ప్రతి ప్రక్రియకు మెమరీ వినియోగాన్ని ఎలా తనిఖీ చేయాలి

How Check Memory Usage Per Process Linux



ఈ రోజుల్లో, కంప్యూటర్ ఒకేసారి అనేక ప్రోగ్రామ్‌లను అమలు చేయగలదు. CPU లకు మల్టీ టాస్కింగ్ నిర్వహించడానికి బహుళ కోర్‌లు ఉన్నందున ఈ అన్ని ప్రోగ్రామ్‌లను నిర్వహించడంలో CPU కి సమస్య లేదు.

ఈ ప్రతి ప్రోగ్రామ్ ఒకటి లేదా అంతకంటే ఎక్కువ ప్రక్రియలుగా నడుస్తుంది. ప్రతి ప్రక్రియ తనకు కొంత మొత్తంలో RAM లేదా మెమరీని కేటాయిస్తుంది. ప్రక్రియ సరిగ్గా పనిచేయడానికి ఇది అవసరం. తగినంత RAM లేదా మెమరీని కేటాయించడంలో ప్రాసెస్ విఫలమైతే, ఆ ప్రక్రియను సృష్టించలేము మరియు ప్రోగ్రామ్ ప్రారంభించబడదు.







కాబట్టి, మీ కంప్యూటర్‌లో మీరు చేసే ప్రాథమిక పని ఏమిటంటే, ప్రతి ప్రక్రియలో ఎంత మెమరీ లేదా ర్యామ్ (రాండమ్ యాక్సెస్ మెమరీ) ఉపయోగించబడుతుందో తనిఖీ చేయడం. ఎందుకంటే, మీ కంప్యూటర్ యొక్క RAM లేదా మెమరీ పరిమితం.



మీరు కొంత ప్రోగ్రామ్‌ని అమలు చేయాలనుకుంటున్న సందర్భాన్ని ఊహించండి మరియు మీకు తగినంత మెమరీ లేనందున అది విఫలమవుతుంది. కొన్ని ప్రక్రియలు మీకు ఇప్పుడు అవసరం లేని మెమరీని ఉపయోగిస్తున్నాయి. RAM లేదా మెమరీని ఖాళీ చేయడానికి మీరు ఈ ప్రక్రియలను చంపవచ్చు లేదా ఆపవచ్చు, తద్వారా మీరు మీ ముఖ్యమైన ప్రోగ్రామ్‌లను ప్రారంభించవచ్చు.



ఈ వ్యాసంలో, మీ లైనక్స్ మెషీన్‌లో నడుస్తున్న ప్రతి ప్రక్రియ యొక్క మెమరీ వినియోగాన్ని ఎలా చెక్ చేయాలో నేను మీకు చూపుతాను. ఈ వ్యాసంలోని అన్ని ప్రదర్శనల కోసం నేను డెబియన్ 9 స్ట్రెచ్‌ని ఉపయోగిస్తాను. కానీ ఇది ఏదైనా ఆధునిక లైనక్స్ పంపిణీలలో పని చేయాలి. ప్రారంభిద్దాం.





మీరు దీనిని ఉపయోగించవచ్చు ps Linux లోని అన్ని ప్రక్రియల మెమరీ వినియోగాన్ని తనిఖీ చేయడానికి ఆదేశం. ఈ విధానంలో ఒక సమస్య ఉంది. ps KB లేదా MB ఫార్మాట్‌లో ఒక ప్రాసెస్ ఎంత మెమరీని ఉపయోగిస్తుందో మీకు నిజంగా చూపించవద్దు, అయితే ఇది ఎంత మెమరీని శాతంలో ఉపయోగిస్తుందో చూపుతుంది.

కింది ఆదేశంతో మీ Linux ఆపరేటింగ్ సిస్టమ్‌లో నడుస్తున్న అన్ని ప్రక్రియల మెమరీ వినియోగాన్ని (శాతంలో) మీరు తనిఖీ చేయవచ్చు:



$ps -లేదాపిడ్, యూజర్,%గుర్తు,కమాండ్గొడ్డలి| క్రమబద్ధీకరించు -బి -కె 3 -ఆర్

మీరు గమనిస్తే, మెమరీ వినియోగంతో అన్ని ప్రక్రియలు అవరోహణ క్రమంలో జాబితా చేయబడతాయి (చాలా మెమరీని ఉపయోగించే ప్రక్రియలు ముందుగా జాబితా చేయబడ్డాయి).

Pmap తో ప్రక్రియల మెమరీ వినియోగాన్ని తనిఖీ చేస్తోంది:

మీరు ఒక ప్రక్రియ యొక్క మెమరీని లేదా మానవ రీడబుల్ ఫార్మాట్‌లో (KB లేదా కిలోబైట్‌లలో) ప్రక్రియల సమితిని తనిఖీ చేయవచ్చు pmap కమాండ్ మీకు కావలసిందల్లా మీరు మెమరీ వినియోగాన్ని తనిఖీ చేయదలిచిన ప్రక్రియల PID.

PID 917 తో ప్రాసెస్ ఎంత మెమరీని ఉపయోగిస్తుందో మీరు చెక్ చేయాలనుకుందాం. దీన్ని చేయడానికి, అమలు చేయండి pmap కింది విధంగా:

$సుడోpmap917

మీరు గమనిస్తే, ప్రాసెస్ 917 ఉపయోగించే మొత్తం మెమరీ 516104 KB లేదా కిలోబైట్లు. PID 917 తో ప్రక్రియను అమలు చేయడానికి లైబ్రరీలు మరియు ఇతర ఫైళ్లు ఎంత మెమరీని ఉపయోగిస్తున్నాయో కూడా మీరు ఇక్కడ చూడవచ్చు.

లైబ్రరీలు లేదా ఇతర ఆధారిత ఫైళ్లు ఎంత మెమరీని ఉపయోగిస్తున్నాయో మీరు పట్టించుకోకపోతే, అప్పుడు అమలు చేయండి pmap కింది విధంగా:

$సుడోpmap917 | తోక -n 1

మీరు గమనిస్తే, PID 917 తో ప్రక్రియ ద్వారా ఉపయోగించిన మొత్తం మెమరీ మాత్రమే తెరపై ముద్రించబడుతుంది.

మీకు కావాలంటే, మీరు దీన్ని మరింత ఫిల్టర్ చేయవచ్చు అవాక్ మరియు పరిమాణాన్ని KB లేదా కిలోబైట్‌లలో మాత్రమే పొందండి. దీన్ని చేయడానికి, అమలు చేయండి pmap కింది విధంగా:

$సుడోpmap917 | తోక -n 1 | అవాక్ ' / [0-9] K / {ముద్రణ $ 2}'

మీరు గమనిస్తే, KB లేదా కిలోబైట్‌లలోని మెమరీ వినియోగం మాత్రమే ముద్రించబడుతుంది.

ఇప్పుడు మీరు వారి PID లను ఉపయోగించి బహుళ ప్రక్రియల ద్వారా ఎంత మెమరీ ఉపయోగించబడుతుందో కూడా జాబితా చేయవచ్చు pmap కింది విధంగా:

$సుడోpmap917 531 | పట్టుమొత్తం

గమనిక: ఇక్కడ 917 మరియు 531 ప్రాసెస్ ID లు లేదా PID లు. ఈ విధంగా మీకు కావలసినన్ని PID లను మీరు ఉంచవచ్చు.

కిలోబైట్‌లలోని అన్ని ప్రక్రియల మెమరీ వినియోగాన్ని జాబితా చేయడానికి pmap ని ఉపయోగించడం:

ఈ విభాగంలో, మీ Linux ఆపరేటింగ్ సిస్టమ్‌లో మానవ రీడబుల్ ఫార్మాట్ (కిలోబైట్లు లేదా KB) లో నడుస్తున్న అన్ని ప్రక్రియల మెమరీ వినియోగాన్ని జాబితా చేయడానికి మీ స్వంత షెల్ స్క్రిప్ట్ ఎలా రాయాలో నేను మీకు చూపుతాను.

ముందుగా కొత్త ఫైల్ తయారు చేయండి సిస్మోన్ కింది ఆదేశంతో మీ ప్రస్తుత పని డైరెక్టరీలో:

$స్పర్శసిస్మోన్

ఇప్పుడు కింది ఆదేశంతో ఫైల్ ఎక్జిక్యూటబుల్ చేయండి:

$chmod+x సిస్మోన్

సిస్మోన్ అన్ని రన్నింగ్ ప్రక్రియలను ప్రదర్శించే షెల్ స్క్రిప్ట్ PID , యజమాని , జ్ఞాపకం (అవరోహణ క్రమంలో KB లో) మరియు కమాండ్ . మొదలు పెడదాం.

తెరవండి సిస్మోన్ మీకు ఇష్టమైన టెక్స్ట్ ఎడిటర్‌తో స్క్రిప్ట్, నేను ఉపయోగించబోతున్నాను కేట్ .

ఇప్పుడు, నేను అమలు చేయబోతున్న మొదటి ఆదేశం నాకు ఇస్తుంది PID , యజమాని మరియు కమాండ్ పెద్దప్రేగు (:) చిహ్నంతో వేరు చేయబడిన అన్ని రన్నింగ్ ప్రక్రియలలో మరియు దానిని నిల్వ చేయండి రావిన్ వేరియబుల్. అప్పుడు అవుట్‌పుట్ ద్వారా లూప్ చేసి స్క్రీన్‌పై ప్రింట్ చేయండి.

మీరు గమనిస్తే, నేను సరైన అవుట్‌పుట్ పొందుతున్నాను.

ఇప్పుడు ప్రతి పంక్తిని ప్రాసెస్ చేయడానికి, కోలన్ డీలిమిటెడ్ సమాచారాన్ని ప్రత్యేక వేరియబుల్స్‌లో నిల్వ చేయడానికి సమయం ఆసన్నమైంది. నేను లైన్ 7, 8 మరియు 9 లలో అదే చేసాను.

మీరు గమనిస్తే, నేను ముద్రించగలను PID , యజమాని మరియు కమాండ్ ఇప్పుడు నా స్వంత ఫార్మాట్‌లో.

ఇప్పుడు ప్రతి PID యొక్క మెమరీ వినియోగాన్ని పొందడానికి సమయం వచ్చింది. లైన్ 10 అది చేస్తుంది.

మీరు గమనిస్తే, ప్రతిదీ ఖచ్చితంగా పని చేస్తుంది. ఇప్పుడు నేను ప్రతి ప్రక్రియ యొక్క మెమరీ వినియోగాన్ని కిలోబైట్‌లలో (KB) ముద్రించగలను.

ఇప్పుడు చేయాల్సిందల్లా అవుట్‌పుట్‌ను చక్కగా కనిపించేలా ఫార్మాట్ చేయడం మాత్రమే. నేను పట్టిక ఆకృతిని ఇష్టపడతాను. పంక్తి 5 పట్టికలోని ప్రతి కాలమ్ యొక్క శీర్షికను ముద్రించింది.

చివరగా, నేను ముద్రించాను PID , యజమాని , జ్ఞాపకం (KB లో) మరియు కమాండ్ పంక్తి 14 ఉపయోగించి పట్టిక ఆకృతిలో ప్రతి ప్రక్రియ యొక్క.

మీరు గమనిస్తే, ఇది బాగా పనిచేస్తోంది. మెమరీ వినియోగం ద్వారా అవరోహణ క్రమంలో ప్రక్రియలు సరిగ్గా క్రమబద్ధీకరించబడనప్పటికీ, కొంచెం సమస్య ఉంది.

దాన్ని పరిష్కరించడానికి, నేను తీసివేసాను క్రమం -bnr -k3 లైన్ 3 నుండి మరియు ప్రతిదీ షెల్ ఫంక్షన్‌లో చుట్టబడింది sysmon_main () . తర్వాత క్రమబద్ధీకరించే పనిని వదిలేసింది క్రమబద్ధీకరించు కమాండ్

చివరి షెల్ స్క్రిప్ట్ ఇలా కనిపిస్తుంది:

మీరు గమనిస్తే, ఇది గొప్పగా పనిచేస్తుంది.

ఇప్పుడు మీరు దానిని అలాంటి చోటికి తరలించవచ్చు /usr/బిన్ మరియు ఈ క్రింది విధంగా ఇతర ఆదేశాల వలె దీన్ని అమలు చేయండి:

$సుడో mv -vసిస్మోన్/usr/am

అమలు చేస్తోంది సిస్మోన్ :

ఈ కథనాన్ని చదివినందుకు ధన్యవాదాలు.