సర్వర్ నెమ్మదిగా ఉంది: ఎక్కడ నుండి ప్రారంభించాలి
ఐదు నిమిషాల డయాగ్నస్టిక్ విధానం: CPU, మెమరీ, డిస్క్, నెట్వర్క్ — కొన్ని కమాండ్లతో సరిగ్గా ఏది బాటిల్నెక్ అవుతోందో ఎలా గుర్తించాలి మరియు తర్వాత ఏమి చేయాలి.
23 ఆగస్టు, 2026న నవీకరించబడింది
“అంతా నెమ్మదిగా ఉంది” అనేది ఒక నిర్ధారణ కాదు. నాలుగు బాటిల్నెక్లు మాత్రమే ఉంటాయి: CPU, మెమరీ, డిస్క్ మరియు నెట్వర్క్. వాటిలో ఒకదాన్ని ఐదు నిమిషాల్లో చూపించే తనిఖీ క్రమం క్రింద ఉంది.
దశ 1: పెద్ద చిత్రం
uptime
free -h
df -h
మూడు కమాండ్లు వెంటనే సగం ఆప్షన్లను తోసిపుచ్చుతాయి. సగటు లోడ్ మీ టియర్లోని కోర్ల సంఖ్య కంటే స్పష్టంగా ఎక్కువగా ఉంటే, ఒక క్యూ ఉంది — లోడ్ యావరేజ్ చూడండి. available సున్నాకు దగ్గరగా ఉంటే అది మెమరీ. పార్టిషన్ 100% నిండి ఉంటే, ఇంకా వెతకాల్సిన అవసరం లేదు — స్థలం అయిపోయింది చదవండి.
దశ 2: సరిగ్గా ఏది బాటిల్నెక్
vmstat 2 5
మొదటి వరుస తప్ప, యావరేజ్ చేసిన కాలమ్లను చూడండి:
- ఎక్కువ
usమరియుsy, పెద్దr— CPU-బౌండ్; - ఎక్కువ
wa, పెద్దb— డిస్క్-బౌండ్; - సున్నా కాని
siమరియుso— స్వాపింగ్ జరుగుతోంది, అంటే మెమరీ అయిపోతోంది; - ఎక్కువ
st— హైపర్వైజర్ తీసుకున్న సమయం, ఇది బాహ్య కారణం, సపోర్ట్ను సంప్రదించండి.
దశ 3: దోషిని కనుగొనండి
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20 # apt install iotop
ss -tn state established | wc -l
లైవ్ చిత్రాన్ని htop లేదా btopలో సులభంగా చదవవచ్చు. D స్టేట్లో ఉన్న ప్రాసెస్లను గమనించండి — అవి డిస్క్ కోసం వేచి ఉండి లోడ్ను పెంచుతాయి.
దోషి మీ అప్లికేషన్ అయితే, తదుపరి ప్రశ్న దాని గురించే: నెమ్మదిగా ఉన్న డేటాబేస్ క్వెరీలు, లేని ఇండెక్స్, చాలా ఎక్కువ వర్కర్లు, డిప్లాయ్ తర్వాత ఇన్ఫినిట్ లూప్. నెమ్మదిగా మారడం మొదలైన క్షణాన్ని లాగ్తో పోల్చండి:
journalctl --since "1 hour ago" -p warning
దశ 4: చరిత్రను తనిఖీ చేయండి
ప్యానెల్ /hosting/vds/m/<id>లో “Overview” తెరిచి, గత రోజు మరియు వారం గ్రాఫ్లను చూడండి. మూడు సాధారణ నమూనాలు:
- నిర్దిష్ట క్షణంలో ఒక మెట్టు పెరుగుదల — ఏదో మారింది: ఒక డిప్లాయ్, ఒక అప్డేట్, ఒక కొత్త cron జాబ్;
- షెడ్యూల్ ప్రకారం క్రమమైన పీక్ — ఒక బ్యాక్గ్రౌండ్ టాస్క్; దాన్ని రాత్రికి మార్చండి లేదా
niceమరియుioniceతో పరిమితం చేయండి; - వారాల పాటు చదునైన ప్లాటో — మీరు మీ టియర్ను మించిపోయారు.
కనుగొన్న దానితో ఏమి చేయాలి
| బాటిల్నెక్ | త్వరిత చర్య | దీర్ఘకాలిక పరిష్కారం |
|---|---|---|
| CPU | అదనపు ప్రాసెస్ను కనుగొని ఆపండి | ఎక్కువ కోర్లు ఉన్న టియర్ |
| మెమరీ | వర్కర్లు మరియు డేటాబేస్ బఫర్లను పరిమితం చేయండి, స్వాప్ జోడించండి | ఎక్కువ మెమరీ ఉన్న టియర్ |
| డిస్క్ | ioniceతో బ్యాకప్లను పరిమితం చేయండి, లాగ్లను కత్తిరించండి | ఉన్నత టియర్: ప్లాటో కోర్ల సంఖ్యతో పెరుగుతుంది |
| నెట్వర్క్ | --bwlimitతో బ్యాక్గ్రౌండ్ డౌన్లోడ్లను పరిమితం చేయండి | ట్రాఫిక్ మూలాన్ని విచారించండి |
డిస్క్ ప్లాటో ఇలా లెక్కించబడుతుంది: ప్రతి కోర్కు 60 MB/s రైట్లు, 60 కంటే తక్కువ కాదు మరియు 400 కంటే ఎక్కువ కాదు, రీడ్లు రెట్టింపు ఉంటాయి. మీరు నిరంతరం ప్లాటో వద్ద ఉంటే, పైకి వెళ్లకుండా డిస్క్ వేగవంతం కాదు — బెంచ్మార్క్ చూడండి.
సాధారణ తప్పులు
- వెంటనే మెషీన్ను రీబూట్ చేయడం. రీబూట్ చిత్రాన్ని తుడిచేస్తుంది, ఒక గంటలో అంతా మళ్లీ పునరావృతమవుతుంది. మొదట సంఖ్యలను సేకరించండి.
- ఒకే ఫ్రేమ్ను నమ్మడం. మీరు htop ప్రారంభించిన క్షణంలో వచ్చే స్పైక్కు అర్థం లేదు — ఒక నిమిషం పాటు గమనించండి.
- నిండిన మెమరీని సమస్యగా భావించడం.
freeకాదు,availableమరియు స్వాప్ చూడండి. - అర్థం చేసుకోకుండా మీ టియర్ను మార్చడం. మెమరీ లీక్ లేదా లూప్ అవుతున్న స్క్రిప్ట్ మీతో పాటు కొత్త టియర్కు వెళ్తుంది. తిరిగి డౌన్గ్రేడ్ చేయడం మద్దతు లేదు.
CPU, మెమరీ మరియు డిస్క్ ప్రశాంతంగా ఉండి కూడా అప్లికేషన్ నెమ్మదిగా ఉంటే, బాటిల్నెక్ మెషీన్ వెలుపల ఉంది: నెమ్మదైన బాహ్య API, DNS, లేదా క్లయింట్ నెట్వర్క్. మీకు కావాల్సిన చిరునామాకు
curl -w '%{time_total}\n' -o /dev/null -sతనిఖీ చేయండి.