Nginx సర్వర్ అధిక CPU లోడ్ మరియు ప్రాసెస్ మెమరీ వినియోగాన్ని కలిగి ఉంటే నేను ఏమి చేయాలి?

Nginx యొక్క CPU వినియోగం విపరీతంగా పెరిగిందని మీరు పనిలో అకస్మాత్తుగా కనుగొన్నారా? విషయాలను మరింత దిగజార్చడానికి, నేను ప్రాసెస్‌లను చూసిన ప్రతిసారీ Nginx యొక్క బహుళ వర్కర్ ప్రాసెస్‌లు పిచ్చిగా వనరులను వినియోగిస్తున్నాయి.

ఈ దృశ్యాన్ని చూసినప్పుడు, మీ తల వేడెక్కిపోతుంది మరియు మీరు "అయ్యో దేవా, సర్వర్ పేలిపోతుందా?" అని అరిచేందుకు సహాయం చేయలేరు, దీని అర్థం మీ సర్వర్ "పూర్తి" అవుతుందని కాదు. కానీ Nginx మీరు సమగ్ర ఆప్టిమైజేషన్ చేయవలసి ఉంది!

అధిక Nginx లోడ్ యొక్క కారణాల విశ్లేషణ

Nginx సర్వర్ అధిక CPU లోడ్ మరియు ప్రాసెస్ మెమరీ వినియోగాన్ని కలిగి ఉంటే నేను ఏమి చేయాలి?

మొదట, మనం గుర్తించాలి,ఎందుకు Nginx అకస్మాత్తుగా "అలసిపోయింది"?సమస్యకు చాలా కారణాలు ఉన్నాయి, భయపడవద్దు, క్రింద కలిసి తెలుసుకుందాం.

1. అసమంజసమైన కాన్ఫిగరేషన్

Nginx కాన్ఫిగరేషన్ ఫైల్‌లో, చాలా ముఖ్యమైన విషయం worker_processes. ఈ పరామితి Nginx ద్వారా ప్రారంభించబడిన ప్రక్రియల సంఖ్యను నిర్ణయిస్తుంది.

  • మీరు చాలా తక్కువ వర్కర్ ప్రాసెస్‌లను కాన్ఫిగర్ చేస్తే, మీరు చాలా ఎక్కువ కాన్ఫిగర్ చేస్తే, CPU లోడ్ పెరుగుతుంది;
  • మీరు బ్యాలెన్స్ పాయింట్‌ని కనుగొనాలి, ఉదాహరణకు,CPU కోర్ల సంఖ్య కంటే 1 నుండి 2 రెట్లు వర్కర్_ప్రాసెస్‌లను సెట్ చేయండి.
  • మీకు 4 కోర్లు ఉంటే, ప్రయత్నించండి worker_processes 4 లేదా నేరుగా సెట్ చేయండి auto.

2. సందర్శనల ఉప్పెన

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

3. హానికరమైన దాడులను ఎదుర్కొన్నారు

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

Nginx ప్రక్రియ యొక్క అధిక మెమరీ వినియోగం యొక్క సమస్యను ఎలా పరిష్కరించాలి?

కాబట్టి ప్రశ్న ఏమిటంటే, Nginx వర్కర్ ప్రక్రియ చాలా వనరులను ఎందుకు తీసుకుంటుంది? మేము కాన్ఫిగరేషన్‌తో ప్రారంభించాలి మరియు స్టెప్ బై స్టెప్ ఆప్టిమైజ్ చేయాలి.

కాన్ఫిగరేషన్ పద్ధతి

  1. Nginx కాన్ఫిగరేషన్ ఫైల్‌ను తెరవండి: సాధారణంగా, Nginx యొక్క ప్రధాన కాన్ఫిగరేషన్ ఫైల్ ఇక్కడ ఉంది /etc/nginx/nginx.conf.

  2. ఏర్పాటు worker_processes: కాన్ఫిగరేషన్ ఫైల్‌లో కనుగొనబడింది events బ్లాక్‌లు, సెట్టింగ్‌లు worker_processes విలువ. కాకపోతే events బ్లాక్ చేయండి, మీరు ఒకదాన్ని సృష్టించాలి.

    nginx
    events {
    worker_connections 1024;
    use epoll;  # 或者适用于操作系统的其他事件模型
    }

1. వర్కర్_కనెక్షన్‌లను సరిగ్గా సెట్ చేయండి

nginx worker_connections ప్రతి వర్కర్ ప్రాసెస్‌ని నిర్వహించగల గరిష్ట కనెక్షన్‌ల సంఖ్యను పరామితి నిర్ణయిస్తుంది. ఇది చాలా చిన్నది అయితే, ఇది చాలా పెద్దది అయినట్లయితే, అది చాలా ఎక్కువ వనరులను వినియోగించవచ్చు.

తగిన విలువను ఎలా లెక్కించాలి?

మీకు 4-కోర్ CPU మరియు 16GB RAM ఉందని ఊహిస్తే, సురక్షితమైన ప్రారంభ స్థానం worker_connections 4096.

కానీ మీ వెబ్‌సైట్‌లో చాలా ట్రాఫిక్ ఉంటే, ప్రతి ప్రక్రియ తగినంత అభ్యర్థనలను నిర్వహించగలదని నిర్ధారించుకోవడానికి ఈ విలువను 8192కి పెంచడాన్ని పరిగణించండి.

events {
    worker_connections 8192;
}

ఈ విధంగా, Nginx యొక్క ప్రాసెసింగ్ శక్తి బాగా మెరుగుపడుతుంది.

2. Keepalive_timeoutని సర్దుబాటు చేయండి

అభ్యర్థనలను నిర్వహించడానికి Nginx కోసం మరొక కీలక పరామితి keepalive_timeout.

ఈ సెట్టింగ్ సర్వర్‌కి క్లయింట్ యొక్క కనెక్షన్‌ని ఎంతకాలం నిర్వహించవచ్చో నిర్ణయిస్తుంది.

చాలా పొడవుగా సెట్ చేస్తే, అది చాలా కనెక్షన్ వనరులను ఆక్రమిస్తుంది..

మీరు ప్రయత్నించవచ్చు keepalive_timeout కనెక్షన్‌ని నిర్వహించడానికి మరియు వనరులను విడుదల చేయడానికి 15 సెకన్లకు సెట్ చేయండి.

keepalive_timeout 15;

3. ఫైల్ డిస్క్రిప్టర్ పరిమితులను ఆప్టిమైజ్ చేయండి

డిఫాల్ట్‌గా,linux సిస్టమ్ ప్రతి ప్రక్రియ ద్వారా తెరవగల ఫైల్ డిస్క్రిప్టర్ల సంఖ్యపై పరిమితిని కలిగి ఉంది.

Nginx పెద్ద సంఖ్యలో ఫైల్‌లను (స్టాటిక్ రిసోర్స్‌లు వంటివి) ప్రాసెస్ చేయవలసి వస్తే, మీరు Nginx నుండి ఒక ఎర్రర్‌ని చూడవచ్చు, "too many open files".

మీరు పాస్ చేయవచ్చు worker_rlimit_nofile ఫైల్ డిస్క్రిప్టర్ పరిమితిని పెంచండి, ఉదాహరణకు 65535కి సెట్ చేయబడింది.

worker_rlimit_nofile 65535;

4. కాషింగ్ మరియు gzip ప్రారంభించండి

వెబ్‌సైట్ పనితీరు ఆప్టిమైజేషన్‌కు కాషింగ్ మరియు కంప్రెషన్ రెండు కీలు.

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

అదనంగా, gzip కంప్రెషన్ ఫంక్షన్‌ను ఆన్ చేయడం ద్వారా ప్రసారం చేయబడిన డేటా మొత్తాన్ని తగ్గించవచ్చు మరియు వెబ్‌సైట్ వేగాన్ని మెరుగుపరుస్తుంది.

gzip on;
gzip_types text/plain application/javascript;

5. Nginx వనరుల వినియోగాన్ని విశ్లేషించండి

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

使用 top లేదా htop ప్రక్రియ యొక్క నిజ-సమయ వనరుల వినియోగాన్ని వీక్షించండి,పాస్ strace సిస్టమ్ కాల్‌లను కనుగొనండి లేదా ఉపయోగించండి nmon పనితీరు నివేదికలను రూపొందించండి. Nginx యొక్క వాస్తవ ఆపరేషన్‌ను సమగ్రంగా విశ్లేషించడం ద్వారా మాత్రమే మనం మరింత ఖచ్చితమైన ట్యూనింగ్ చేయగలము.

总结

Nginx యొక్క CPU వినియోగం పెరిగినప్పుడు భయపడవద్దు. ఇది సరికాని కాన్ఫిగరేషన్ లేదా అధిక ట్రాఫిక్ వల్ల సంభవించి ఉండవచ్చు.

సహేతుకమైన సర్దుబాట్ల ద్వారా worker_processes మరియు worker_connectionsకాషింగ్ ఎనేబుల్ చేయడం, టైమ్‌అవుట్‌లు మరియు ఫైల్ డిస్క్రిప్టర్‌లను ఆప్టిమైజ్ చేయడం ద్వారా, మీరు Nginxపై లోడ్ ఒత్తిడిని గణనీయంగా తగ్గించవచ్చు.

Nginx అనేది శక్తివంతమైన వెబ్ సర్వర్, ఇది సరిగ్గా ఆప్టిమైజ్ చేయబడినప్పుడు, మీ వెబ్‌సైట్ కోసం అద్భుతమైన పనితీరును అందిస్తుంది.

గుర్తుంచుకోండి, ఏవైనా ప్రశ్నలకు సమాధానం ఇవ్వవచ్చుసైన్స్దీన్ని పరిష్కరించడానికి పద్ధతులు, సర్వర్ పనితీరును ఆప్టిమైజ్ చేయడం మినహాయింపు కాదు.

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

ఈ కథనం మీకు స్ఫూర్తినిస్తుందని ఆశిస్తున్నాను, తొందరపడి మీ Nginxని ఆప్టిమైజ్ చేయండి!

హోప్ చెన్ వీలియాంగ్ బ్లాగ్ ( https://www.chenweiliang.com/ ) భాగస్వామ్యం చేయబడింది "Nginx సర్వర్ CPU లోడ్ మరియు ప్రాసెస్ మెమరీ వినియోగం ఎక్కువగా ఉంటే నేను ఏమి చేయాలి?" 》, మీకు సహాయకరంగా ఉంది.

ఈ కథనం యొక్క లింక్‌ను భాగస్వామ్యం చేయడానికి స్వాగతం:https://www.chenweiliang.com/cwl-32093.html

మరిన్ని దాచిన ఉపాయాలను అన్‌లాక్ చేయడానికి🔑, మా టెలిగ్రామ్ ఛానెల్‌లో చేరడానికి స్వాగతం!

మీకు నచ్చితే షేర్ చేయండి మరియు లైక్ చేయండి! మీ షేర్లు మరియు ఇష్టాలు మా నిరంతర ప్రేరణ!

 

发表 评论

మీ ఇమెయిల్ చిరునామా ప్రచురించబడదు. అవసరమైన ఫీల్డ్‌లు ఉపయోగించబడతాయి * లేబుల్

పైకి స్క్రోల్