ఆర్టికల్ డైరెక్టరీ
రెండు రోజుల క్రితం, ఒక స్నేహితుడు రాత్రి ఆలస్యంగా తన సర్వర్ క్రాష్ అయిందని నాకు మెసేజ్ చేశాడు.
ఆ నిర్దిష్ట లక్షణాలు చాలా విచిత్రంగా ఉన్నాయి: వెబ్సైట్ అకస్మాత్తుగా లోపాలను చూపించడం ప్రారంభించింది, లాగ్లను వ్రాయలేకపోయింది, మరియు కొత్త ఫైల్లను సృష్టించిన వెంటనే డిస్క్ నిండిపోయిందని సందేశం వచ్చింది.
కానీ అతను `df -h`తో తనిఖీ చేసినప్పుడు, డిస్క్లో స్పష్టంగా పదుల గిగాబైట్ల ఖాళీ స్థలం ఉండటం చూసి ఆశ్చర్యపోయాడు. అది ఎలా నిండిపోతుంది?
నేను అక్కడికక్కడే అతనితో, "సోదరా, నీ స్టోరేజ్ స్పేస్ నిండిపోవడమే కాదు, నీ ఐనోడ్ ఓవర్లోడ్ అయింది" అని చెప్పాను.
అతను ప్రశ్నార్థకంతో ఇలా బదులిచ్చాడు: అసలు ఐనోడ్ అంటే ఏమిటి?
నిజానికి, చాలా మంది మొదటిసారి ఈ ఉచ్చులో పడినప్పుడు అతను ఎలా స్పందించాడో సరిగ్గా అలాగే స్పందిస్తారు, ఎందుకంటే పాఠశాలలో ఎవరూ వారికి ఈ విషయాలు ఎప్పుడూ నేర్పించలేదు.
ముందుగా Inode అంటే ఏమిటో స్పష్టం చేసుకుందాం.
దీన్ని ఒక లైబ్రరీ ఇండెక్స్ కార్డులాగా భావిస్తే, అర్థం చేసుకోవడం సులభంగా ఉంటుంది.
డిస్క్ స్పేస్ ఒక పుస్తకాల అర లాంటిది; దానిలో ఎన్ని పుస్తకాలు పెట్టగలమనేది దాని సామర్థ్యంపై ఆధారపడి ఉంటుంది, ఈ విషయం అందరికీ సులభంగా అర్థమవుతుంది.
ఐనోడ్ అనేది ప్రతి పుస్తకానికి ఉండే ఒక ఇండెక్స్ కార్డు లాంటిది, ఇది పుస్తకం పేరు, అది ఉన్న ప్రదేశం మరియు దాన్ని ఎవరు తరలించారో నమోదు చేస్తుంది.
లినక్స్లో , ఫైల్ ఎంత చిన్నదైనా సరే, ప్రతి ఫైల్ మరియు ప్రతి డైరెక్టరీ తప్పనిసరిగా ఒక ఐనోడ్ను కలిగి ఉండాలి.
అది ఖాళీ ఫైల్ అయినప్పటికీ, సిస్టమ్ దాని కోసం ఒక ఇండెక్స్ కార్డును తీసుకుంటుంది.
సిస్టమ్ సృష్టించగల మొత్తం ఫైళ్ల సంఖ్యకు ఒక పరిమితి ఉంటుంది; ఈ పరిమితియే మొత్తం ఇన్నోడ్ల సంఖ్య.
ఒకసారి ఐనోడ్ నిండిపోతే, మీ డిస్క్లో వందల గిగాబైట్ల ఖాళీ స్థలం ఉన్నప్పటికీ, ఆపరేటింగ్ సిస్టమ్ కొత్త ఫైళ్లను సృష్టించడానికి నిరాకరిస్తుంది.
లాగ్లు రాయలేకపోవడం, కాష్ సృష్టించలేకపోవడం, మరియు వెబ్సైట్ పూర్తిగా క్రాష్ అవ్వడం—మీరు చూస్తున్న వింత దృశ్యం ఇదే.
నిజం చెప్పాలంటే, ఇది చాలా క్లిష్టమైన పరిస్థితి, ఎందుకంటే ఆ ఎర్రర్ మెసేజ్ మీరు గమనించని ప్రదేశం నుండి పంపబడుతుంది.
త్వరిత అవలోకనం పొందడానికి `df -i` ను ఉపయోగించడమే మొదటి ఉపాయం.
HestiaCP వాతావరణంలో , మీరు టెర్మినల్లోకి SSH చేసి ఈ లైన్ను టైప్ చేస్తే సరిపోతుంది.
df -iఇది ప్రతి మౌంట్ చేయబడిన పార్టిషన్ కోసం మొత్తం ఇన్నోడ్ల సంఖ్య, ఉపయోగించిన వాటి సంఖ్య మరియు మిగిలి ఉన్న వాటి సంఖ్యను జాబితా చేస్తుంది.
అవుట్పుట్లో IUse% అనే కాలమ్ ఉంటుంది, ఇది మీరు గమనించవలసిన కీలకమైన కొలమానం.
ఒక పార్టిషన్ యొక్క IUse% 100%కి చేరితే, ఆ పార్టిషన్లో ఇంకా పుష్కలంగా డిస్క్ స్పేస్ ఉన్నప్పటికీ, అది ఇకపై కొత్త ఫైల్స్ లేదా లాగ్స్ను సృష్టించలేదు.
ఊహించడం కంటే చాలా వేగంగా , సమస్య ఐనోడ్లో ఉందో లేదో ఒక్క సెకనులో కచ్చితంగా గుర్తించడానికి వీలుగా, ముందుగా దీన్ని రన్ చేయమని నేను నా స్నేహితుడికి సూచించాను .
రెండవ పద్ధతి ఏమిటంటే, ఒక నిర్దిష్ట వినియోగదారుని ఖచ్చితంగా లెక్కించడానికి `find`ను ఉపయోగించడం.
సమస్య ఇన్నోడ్లోనే ఉందని నిర్ధారించుకున్న తర్వాత, ఇండెక్స్ కార్డును ఎవరు అధికంగా వినియోగిస్తున్నారో కనుక్కోవాలి.
HestiaCPలో ప్రతి వినియోగదారునికి ఒక ప్రత్యేక హోమ్ డైరెక్టరీ ఉంటుంది. మీరు ఒక నిర్దిష్ట వెబ్సైట్ డైరెక్టరీ కింద ఉన్న మొత్తం ఫైల్స్ మరియు డైరెక్టరీల సంఖ్యను సులభంగా లెక్కించవచ్చు.
find /home/用户名/web/你的域名/public_html | wc -l'యూజర్నేమ్' మరియు 'మీ డొమైన్ పేరు' స్థానంలో మీ అసలైన పాత్ను ఉంచండి. టెర్మినల్ ద్వారా తిరిగి ఇవ్వబడిన సంఖ్య ఆ డైరెక్టరీలోని అన్ని ఫైళ్లు మరియు ఫోల్డర్ల మొత్తం.
ప్రతి ఫైల్ లేదా డైరెక్టరీ ఒక ఐనోడ్కు అనుగుణంగా ఉంటుంది, కాబట్టి ఈ సంఖ్య ఐనోడ్ వినియోగాన్ని సూచిస్తుంది.

మీరు ప్రతి ఒక్కరినీ విడివిడిగా తనిఖీ చేయడానికి బద్ధకించి, మొత్తం సైట్లోని వినియోగదారులందరి వినియోగ పంపిణీని ఒకేసారి చూడాలనుకుంటే, దానికోసం ఒకే లూప్ కమాండ్ కూడా ఉంది.
for d in /home/*; do echo -n "$d: "; find "$d" 2>/dev/null | wc -l; doneఈ లైన్ /home కింద ఉన్న ప్రతి యూజర్ డైరెక్టరీలోని మొత్తం ఫైళ్ల సంఖ్యను ప్రింట్ చేస్తుంది, దీనివల్ల ఏ యూజర్ డైరెక్టరీలో అసాధారణంగా ఎక్కువ సంఖ్యలో ఫైళ్లు ఉన్నాయో సులభంగా గుర్తించవచ్చు.
మూడవ వ్యూహం ఏమిటంటే, అత్యధిక అయోడిన్ను వినియోగించే సబ్ డైరెక్టరీలను గుర్తించడం.
కొన్నిసార్లు ఒక వెబ్సైట్లో ఐనోడ్ విలువలు విపరీతంగా ఎక్కువగా ఉన్నాయని మీకు తెలిసినా, ఫైల్స్తో నిండిన స్క్రీన్లో సమస్య ఏంటో మాత్రం మీరు కనిపెట్టలేరు.
ఇలాంటి సందర్భాలలో, కాష్ డైరెక్టరీలు, సెషన్ డైరెక్టరీలు మరియు లాగ్ డైరెక్టరీల వంటి పెద్ద సంఖ్యలో చిన్న ఫైల్లను కలిగి ఉన్న సబ్ ఫోల్డర్లను కనుగొనడానికి మీరు ఒక స్థాయి కిందకు వెళ్లాలి—ఇవే అత్యంత సమస్యాత్మకమైన ప్రాంతాలు.
find /home/用户名/web/你的域名/public_html -type d -exec sh -c 'echo -n "{}: "; find "{}" -maxdepth 1 | wc -l' \; | sort -n -r -k 2 | head -n 10ఈ కమాండ్ అత్యధిక ఫైళ్లను వినియోగించే టాప్ 10 సబ్ ఫోల్డర్లను జాబితా చేస్తుంది.
జాబితాలో అన్నిటికంటే పైనున్న మార్గంలో పెద్ద సంఖ్యలో చిన్న ఫైళ్లు ఒకచోట గుమిగూడి ఉంటాయి.
బహుశా ఏదైనా క్యాషింగ్ ప్లగిన్ రహస్యంగా చిన్న ఫైళ్లను సృష్టిస్తోందని, ఈ లైన్ను రన్ చేస్తే అది ప్రాథమికంగా నిర్ధారణ అవుతుందని నేను నా స్నేహితుడికి చెప్పాను.
నాలుగవ చిట్కా ఏమిటంటే, repquota ఉపయోగించి కోటా పరిమితిని తనిఖీ చేయడం.
మీ సర్వర్లో లైనక్స్ ఫైల్ సిస్టమ్ కోటాలు ఎనేబుల్ చేయబడి ఉంటే, మీరు సమస్యను వేరే కోణంలో చూడవచ్చు.
repquota -aఈ కమాండ్ వినియోగదారులందరి ఫైల్ పరిమితిని మరియు వాస్తవ ఫైల్ వినియోగాన్ని చూపిస్తుంది.
అవుట్పుట్లోని ఫైల్ పరిమితుల విభాగాన్ని జాగ్రత్తగా గమనించండి; ఉపయోగించిన కాలమ్ ఎన్ని ఫైల్లు ఉపయోగించబడ్డాయో సూచిస్తుంది.
"సాఫ్ట్" మరియు "హార్డ్" కాలమ్లు సాఫ్ట్ మరియు హార్డ్ పరిమితి స్థాయిలను సూచిస్తాయి. ఒకసారి "యూజ్డ్" "హార్డ్" స్థాయికి చేరుకుంటే, సిస్టమ్ కొత్త ఫైళ్లను సృష్టించడాన్ని నేరుగా నిరాకరిస్తుంది.
మీ డిస్క్లో ఎంత స్థలం మిగిలి ఉంది అనే విషయానికి ఇది పూర్తిగా భిన్నమైనది.
ముగింపుగా, దర్యాప్తులోని అంశాలను అనుసంధానిద్దాం.
మొదట్లో అర్ధరాత్రి సర్వర్ను క్రాష్ చేసిన స్నేహితుడి దగ్గరికి తిరిగి వెళ్దాం.
ఐనోడ్ నిజంగా నిండిపోయిందని నిర్ధారించుకోవడానికి `df -i` తో మొదలుపెట్టి, నేను వివరించిన నాలుగు దశలను అతను అనుసరించాడు.
ఆ తర్వాత, ఫైండ్ ఫంక్షన్ను ఉపయోగించి, విపరీతంగా చిన్న ఫైళ్లను సృష్టిస్తున్న ఒక పాడుబడిన పాత వెబ్సైట్ యొక్క కాష్ డైరెక్టరీని మేము గుర్తించాము.
చివరగా, `repquota`ను తనిఖీ చేయగా అది నిజంగానే గరిష్ట పరిమితికి చేరుకుందని నిర్ధారణ అయింది.
ఆ పనికిరాని కాష్ను తొలగించిన తర్వాత, వెబ్సైట్ వెంటనే తిరిగి పనిచేయడం ప్రారంభించింది.
కాబట్టి, తర్వాతిసారి "డిస్క్లో స్పష్టంగా స్థలం ఉన్నప్పటికీ ఫైల్స్ రాయలేకపోవడం" అనే విచిత్రమైన పరిస్థితి మీకు ఎదురైనప్పుడు, హార్డ్ డ్రైవ్ను జోడించడానికి తొందరపడకండి.
మొదట, ఐనోడ్ను పరిశీలించడానికి `df -i` ను ఉపయోగించండి; మీరు ఇంతకు ముందెన్నడూ గమనించని ఆ ఇండెక్స్ కార్డులోనే అసలు నిజం దాగి ఉండవచ్చు.
వంద ఆప్టిమైజేషన్ జాబితాలను కంఠస్థం చేయడం కంటే, సిస్టమ్ యొక్క మూలంలో దాగి ఉన్న ఈ చిన్నపాటి ఇంగితజ్ఞానమే ఎక్కువ ఉపయోగకరమని నేను మనస్ఫూర్తిగా నమ్ముతున్నాను.
చెన్ వీలియాంగ్ బ్లాగ్ ( https://www.chenweiliang.com/ ) లో పంచుకున్న "HestiaCP లో Inode వినియోగాన్ని ఎలా తనిఖీ చేయాలి? డిస్క్ స్పేస్ అందుబాటులో ఉన్నప్పటికీ ఫైల్లను వ్రాయలేకపోవడానికి కారణం" అనే వ్యాసం మీకు సహాయకరంగా ఉంటుందని ఆశిస్తున్నాము.
ఈ వ్యాసం యొక్క లింక్ను పంచుకోవడానికి సంకోచించకండి: https://www.chenweiliang.com/cwl-34619.html
