लेख निर्देशिका
Nginx चा CPU वापर गगनाला भिडल्याचे तुम्हाला अचानक कामावर आढळून आले आहे का? प्रकरण आणखी वाईट करण्यासाठी, Nginx च्या एकाधिक कामगार प्रक्रिया प्रत्येक वेळी मी प्रक्रिया पाहतो तेव्हा वेड्यासारखे संसाधने वापरत आहेत.
हे दृश्य पाहून, तुमचे डोके गरम होते, आणि तुम्ही ओरडून मदत करू शकत नाही: "अरे देवा, सर्व्हरचा स्फोट होणार आहे का, काळजी करू नका, याचा अर्थ असा नाही की तुमचा सर्व्हर "पूर्ण" होणार आहे. परंतु Nginx आम्हाला तुम्हाला सर्वसमावेशक ऑप्टिमायझेशन करण्याची आवश्यकता आहे!
जास्त Nginx लोड कारणे विश्लेषण

प्रथम, आपल्याला हे शोधून काढावे लागेल,Nginx अचानक "थकून" का होते?समस्येची अनेक कारणे आहेत, घाबरू नका, चला खाली एकत्र शोधूया.
1. अवास्तव कॉन्फिगरेशन
Nginx कॉन्फिगरेशन फाइलमध्ये, सर्वात महत्वाचा मुद्दा आहे worker_processes. हे पॅरामीटर Nginx ने सुरू केलेल्या प्रक्रियांची संख्या निर्धारित करते.
- जर तुम्ही खूप कमी कार्यकर्ता प्रक्रिया कॉन्फिगर केली, तर CPU लोड वाढेल;
- तुम्हाला शिल्लक बिंदू शोधावा लागेल, उदाहरणार्थ,CPU कोरच्या 1 ते 2 पट वर worker_processes सेट करा.
- जर तुमच्याकडे 4 कोर असतील तर प्रयत्न करा
worker_processes 4किंवा थेट वर सेट कराauto.
2. लाट भेटी
काहीवेळा, Nginx चा भार अचानक वाढतो कारण तुम्ही चूक केली नाही तर भेटींची संख्या खूप जास्त आहे.उच्च समवर्ती प्रवेश विनंत्यांमुळे Nginx कार्यकर्ता प्रक्रिया भारावून जाईल., प्रत्येक प्रक्रिया ओव्हरलोड आहे, आणि CPU आणि मेमरी देखील भरलेली आहे. यावेळी, तुम्हाला सर्व्हर संसाधने सुधारण्याची आवश्यकता असू शकते, जसे की CPU कोरची संख्या वाढवणे किंवा मेमरी वाढवणे. अर्थात, हे देखील एक स्मरणपत्र आहे: CDN ऑफलोडिंग किंवा लोड बॅलन्सिंगचा विचार करण्यास विसरू नका.
3. दुर्भावनापूर्ण हल्ले झाले
इंटरनेटवर "खूप लोकप्रिय" असणे नेहमीच चांगली गोष्ट नसते. जर तुम्हाला असे आढळले की CPU वापर असामान्यपणे जास्त आहे आणि विनंती आयपीचा स्रोत संशयास्पद आहे, तर तुमची वेबसाइट DDoS हल्ल्याने ग्रस्त असण्याची शक्यता आहे. यावेळी,तुम्हाला फायरवॉल उपयोजित करणे किंवा प्रवेश वारंवारता त्वरित मर्यादित करणे आवश्यक आहे, जसे की Nginx सह येणारे वर्तमान मर्यादित मॉड्यूल वापरणे किंवा IP ब्लॅकलिस्ट सेट करणे.
Nginx प्रक्रियेच्या उच्च मेमरी वापराची समस्या कशी सोडवायची?
तर प्रश्न असा आहे की Nginx कार्यकर्ता प्रक्रिया इतकी संसाधने का घेते? आपल्याला कॉन्फिगरेशनपासून सुरुवात करावी लागेल आणि टप्प्याटप्प्याने ते ऑप्टिमाइझ करावे लागेल.
कॉन्फिगरेशन पद्धत
Nginx कॉन्फिगरेशन फाइल उघडा: सहसा, Nginx ची मुख्य कॉन्फिगरेशन फाइल येथे असते
/etc/nginx/nginx.conf.सेट अप करा
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
अधिक लपलेल्या युक्त्या उघड करण्यासाठी🔑, आमच्या टेलिग्राम चॅनेलमध्ये सामील होण्यासाठी स्वागत आहे!
आवडल्यास शेअर आणि लाईक करा! तुमचे शेअर्स आणि लाईक्स ही आमची सतत प्रेरणा आहेत!