ఉబుంటులో మెమరీ లీక్‌ను ఎలా గుర్తించాలి



సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి

ఉబుంటులో మెమరీ లీక్ సంభవించడానికి అనేక కారణాలు ఉన్నాయి, కానీ అదృష్టవశాత్తూ, అవి సంభవించినప్పుడు ఇది స్పష్టంగా కనిపిస్తుంది. బగ్గీ కోడ్ తరచుగా అతి పెద్ద కారణం, ఎందుకంటే ప్రోగ్రామర్‌లకు ఇకపై అవసరం లేని మెమరీ విడుదల అవుతుందో లేదో తనిఖీ చేసే అవకాశం లేకపోవచ్చు. మీరు అస్థిర ప్యాకేజీలను ఇన్‌స్టాల్ చేస్తుంటే లేదా మూలం నుండి కోడ్‌ను కంపైల్ చేస్తుంటే, మీరు ఈ కారణంగా మెమరీ లీక్‌లతో వ్యవహరించవచ్చు. మీరు తగినంత భౌతిక ర్యామ్‌ను ఇన్‌స్టాల్ చేసినప్పుడు సాఫ్ట్‌వేర్ అప్లికేషన్ ప్యాకేజీలు మెమరీలో లేవని ఫిర్యాదు చేయడం ప్రారంభించినందున మీరు వాటిని గమనించడం ప్రారంభిస్తారు.



మెమరీ లీక్ గురించి మీకు ఆందోళన ఉంటే, టెర్మినల్‌లో ఉచితంగా టైప్ చేయడానికి ప్రయత్నించండి. మీరు అకస్మాత్తుగా RAM వినియోగం త్వరగా పెరుగుతున్నట్లు చూడటం ప్రారంభిస్తే, మీరు ఇప్పటికే మెమరీ లీక్‌ను గుర్తించారు. మీరు బాష్ వంటిదాన్ని చదివే లోపాన్ని స్వీకరించాలా: దీన్ని చేస్తున్నప్పుడు తగినంత మెమరీ లేదు మరియు మీకు టెర్మినల్ లేదా వర్చువల్ కన్సోల్ తెరిచి ఉంది, అప్పుడు మీరు దాదాపుగా ఒకదానితో వ్యవహరిస్తున్నారు. కొన్ని మెమరీ లీక్‌లు కొంచెం సూక్ష్మంగా ఉంటాయి, కానీ ఉబుంటు మరియు ఇది వివిధ స్పిన్-ఆఫ్ ఫీచర్ సాధనాలు మరియు ప్యాకేజీలను గుర్తించడంలో మీకు సహాయపడుతుంది.



ఉబుంటులో మెమరీ లీక్‌లను గుర్తించడం

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



సరిగ్గా ప్రదర్శిస్తే ఇది మీకు రూట్ షెల్ పొందాలి, కానీ మీరు ఇప్పటికే చాలా దూరం పోయిన లీక్‌తో పనిచేస్తుంటే మెమరీ లోపానికి కారణం కావచ్చు. మీరు నిజంగా రూట్ షెల్‌ను యాక్సెస్ చేయగలిగితే, ఎకో 3> / proc / sys / m / drop_caches టైప్ చేసి, ఎంటర్ కీని నొక్కండి, ఆపై నిష్క్రమణ టైప్ చేయండి. మెమరీని విడుదల చేయడానికి ఇది సహాయపడుతుందో లేదో చూడటానికి ఉచిత లేదా ఉచిత -m ను మళ్లీ ప్రయత్నించండి.

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

కొంతమంది వ్యక్తులు లైన్ సమకాలీకరణను జోడించమని సూచించారు; సుడో ఎకో 3> / proc / sys / vm / drop_caches క్రాన్ స్థిరంగా నడుస్తున్న స్క్రిప్ట్‌కు, అయితే ఇది మెమరీ కాషింగ్ యొక్క ఉద్దేశ్యాన్ని మొదటి స్థానంలో ఓడిస్తుంది. ఉచిత మెమరీ కేవలం ఉపయోగించని RAM, మరియు డేటా చాలా నెమ్మదిగా నుండి లోడ్ చేయబడాలిఎలెక్ట్రోమెకానికల్ లేదా NAND నిల్వ పరికరాలు. ఈ పరికరాలు ఎంత వేగంగా ఉన్నా, అవి ర్యామ్ వలె వేగంగా లేవు, అంటే మీరు మెమరీ లీక్‌లను పరిష్కరించేటప్పుడు, కాష్ సిస్టమ్‌ను సరైన సెట్టింగ్‌కు సెట్ చేసిన తర్వాత మీరు దాన్ని నిజంగా దెబ్బతీయకూడదు.



మీ మెషీన్ను ఉపయోగిస్తున్నప్పుడు క్రమానుగతంగా జరిగే స్థిరమైన మెమరీ లీక్ మీకు ఉందని మీరు నిర్ణయించుకుంటే, దానిని ప్రత్యేకంగా తగ్గించలేరు, కానీ మీకు ఇంకా CLI యాక్సెస్ ఉంది, ఆపై టాప్ కమాండ్‌ను అమలు చేయడానికి ప్రయత్నించండి. ఇది మీకు నడుస్తున్న ప్రక్రియల జాబితాను ఇస్తుంది.

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

మీరు పెద్ద మొత్తంలో మెమరీని ఉపయోగిస్తున్న అనువర్తనాన్ని కనుగొంటే, నిష్క్రమించడానికి q ని నొక్కండి, ఆపై మునుపటి స్క్రీన్ నుండి PID సంఖ్యతో #### ని చంపడానికి ప్రయత్నించండి. సిస్టమ్ ప్రాసెస్‌లు ఈ విధంగా చంపబడకూడదు, లేదా మీరు సేవ్ చేయని పనిని కలిగి ఉండకూడదు. Ctrl + Alt + Del టాస్క్ జాబితాతో ఏదైనా చంపడానికి ఇదే విధంగా ఆలోచించండి, మీరు కూడా ఇదే ప్రక్రియ కోసం ఉపయోగించవచ్చు.

ఇది స్థిరంగా జరుగుతున్న ప్రోగ్రామ్‌ను మీరు కనుగొన్నప్పుడు, భవిష్యత్తులో ప్రవర్తనను నిరోధించడానికి మీరు దీన్ని కాన్ఫిగర్ చేయవచ్చు. ప్రతి ఒక్క ప్రోగ్రామ్‌కు వేరే సహాయం అవసరం, ఇది మెమరీ లీక్‌లను గుర్తించే పనికి మించినది.

మీరు కేవలం ట్రబుల్షూటింగ్ అనువర్తనాలు కాకపోవచ్చు, కానీ వాస్తవానికి కోడ్‌తో పనిచేయడం కూడా మీకు కొన్ని ఇతర వనరులు ఉన్నాయి. ఉబుంటు మరియు దాని ఉత్పన్నాలు మీకు ప్రోగ్రామింగ్ కోసం మెమ్బరియర్, మెముసేజ్ మరియు మెముసాగేస్టాట్ సి నిత్యకృత్యాలను అందిస్తాయి.

ఈ ముఖ్యమైన నిత్యకృత్యాలపై లైనక్స్ ప్రోగ్రామర్ యొక్క మాన్యువల్ పేజీలను చూడటానికి మ్యాన్ మెమ్బారియర్, మ్యాన్ మెమ్యూసేజ్ లేదా మ్యాన్ మెముసాగేస్టాట్ ఉపయోగించండి. ఉబుంటు యొక్క క్రొత్త సంస్కరణలు బయటకు రావడంతో లైబ్రరీల యొక్క భవిష్యత్తు వెర్షన్లలో నవీకరణలు ఉంటే, మార్పులు ఎల్లప్పుడూ ఇక్కడ వివరించబడతాయి.

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

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

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

4 నిమిషాలు చదవండి