यदि Nginx सर्वर में उच्च CPU लोड और प्रोसेस मेमोरी उपयोग है तो मुझे क्या करना चाहिए?

क्या आपको कार्यस्थल पर अचानक पता चला है कि Nginx का CPU उपयोग आसमान छू गया है? मामले को बदतर बनाने के लिए, जब भी मैं प्रक्रियाओं को देखता हूं तो Nginx की कई कार्यकर्ता प्रक्रियाएं पागलों की तरह संसाधनों का उपभोग कर रही हैं।

यह दृश्य देखकर आपका सिर गर्म हो जाता है और आप चिल्लाने से खुद को नहीं रोक पाते: "हे भगवान, क्या सर्वर फटने वाला है?" चिंता न करें, इसका मतलब यह नहीं है कि आपका सर्वर "खत्म" होने वाला है Nginx हमें आपके व्यापक अनुकूलन की आवश्यकता है!

अत्यधिक Nginx लोड के कारणों का विश्लेषण

यदि Nginx सर्वर में उच्च CPU लोड और प्रोसेस मेमोरी उपयोग है तो मुझे क्या करना चाहिए?

सबसे पहले, हमें यह पता लगाना होगा,Nginx अचानक "थका हुआ" क्यों हो जाता है?समस्या के कई कारण हैं, डरें नहीं, आइए नीचे मिलकर जानें।

1. अनुचित विन्यास

Nginx कॉन्फ़िगरेशन फ़ाइल में, सबसे महत्वपूर्ण बिंदु है worker_processes. यह पैरामीटर Nginx द्वारा शुरू की गई प्रक्रियाओं की संख्या निर्धारित करता है।

  • यदि आप बहुत कम कार्यकर्ता प्रक्रियाओं को कॉन्फ़िगर करते हैं, तो सीपीयू लोड बढ़ जाएगा यदि आप बहुत अधिक कॉन्फ़िगर करते हैं, तो अपर्याप्त मेमोरी होगी।
  • आपको एक संतुलन बिंदु ढूंढना होगा, उदाहरण के लिए,वर्कर_प्रोसेस को सीपीयू कोर की संख्या से 1 से 2 गुना पर सेट करें.
  • यदि आपके पास 4 कोर हैं तो प्रयास करें worker_processes 4 या इसे सीधे सेट करें auto.

2. दौरे बढ़े

कभी-कभी, Nginx का लोड अचानक बढ़ जाता है, इसलिए नहीं कि आपने कोई गलती की है, बल्कि इसलिए क्योंकि विज़िट की संख्या बहुत अधिक है।अत्यधिक समवर्ती पहुंच अनुरोधों के कारण Nginx कार्यकर्ता प्रक्रिया अभिभूत हो जाएगी।, हर प्रक्रिया अतिभारित है, और सीपीयू और मेमोरी भी भरी हुई है। इस समय, आपको सर्वर संसाधनों में सुधार करने की आवश्यकता हो सकती है, जैसे सीपीयू कोर की संख्या बढ़ाना या मेमोरी बढ़ाना। बेशक, यह एक अनुस्मारक भी है: सीडीएन ऑफलोडिंग या लोड संतुलन पर विचार करना न भूलें।

3. दुर्भावनापूर्ण हमलों का सामना करना पड़ा

इंटरनेट पर "बहुत लोकप्रिय" होना हमेशा अच्छी बात नहीं है। दुर्भावनापूर्ण हमले आपको किसी भी समय निशाना बना सकते हैं। यदि आप पाते हैं कि सीपीयू का उपयोग असामान्य रूप से अधिक है और अनुरोध आईपी का स्रोत संदिग्ध है, तो यह बहुत संभव है कि आपकी वेबसाइट 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-कोर सीपीयू और 16 जीबी रैम है, तो यह एक सुरक्षित शुरुआती बिंदु है 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 लेता है, तो आपको गहन विश्लेषण के लिए कुछ टूल का उपयोग करने की आवश्यकता हो सकती है।

उपयोग tophtop किसी प्रक्रिया की वास्तविक समय संसाधन खपत देखें,उत्तीर्ण strace सिस्टम कॉल ट्रेस करें, या उपयोग करें nmon प्रदर्शन रिपोर्ट तैयार करें. केवल Nginx के वास्तविक संचालन का व्यापक विश्लेषण करके ही हम अधिक सटीक ट्यूनिंग कर सकते हैं।

सारांश में

जब Nginx का CPU उपयोग बढ़ जाए तो घबराएं नहीं। यह अनुचित कॉन्फ़िगरेशन या अत्यधिक ट्रैफ़िक के कारण हो सकता है।

उचित समायोजन के माध्यम से worker_processesworker_connectionsकैशिंग को सक्षम करके, टाइमआउट और फ़ाइल डिस्क्रिप्टर को अनुकूलित करके, आप Nginx पर लोड दबाव को काफी कम कर सकते हैं।

Nginx एक शक्तिशाली वेब सर्वर है, जो उचित रूप से अनुकूलित होने पर, आपकी वेबसाइट के लिए उत्कृष्ट प्रदर्शन प्रदान कर सकता है।

याद रखें, किसी भी प्रश्न का उत्तर दिया जा सकता हैविज्ञानइसे हल करने के तरीके, सर्वर प्रदर्शन का अनुकूलन कोई अपवाद नहीं है।

समय-समय पर निगरानी एवं समायोजन करें, Nginx को कुशलतापूर्वक चलाने की कुंजी है। यदि आप इन तकनीकों में महारत हासिल कर सकते हैं, तो आपकी वेबसाइट उच्च ट्रैफ़िक या दुर्भावनापूर्ण हमलों के बावजूद भी सुरक्षित रहेगी।

मुझे आशा है कि इस लेख ने आपको प्रेरित किया है, जल्दी करें और अपने Nginx को अनुकूलित करें!

होप चेन वेइलियांग ब्लॉग ( https://www.chenweiliang.com/ ) साझा किया गया "यदि Nginx सर्वर CPU लोड और प्रोसेस मेमोरी उपयोग अधिक है तो मुझे क्या करना चाहिए?" 》, आपके लिए मददगार।

इस लेख का लिंक साझा करने के लिए आपका स्वागत है:https://www.chenweiliang.com/cwl-32093.html

अधिक छिपी हुई ट्रिक्स को अनलॉक करने के लिए, हमारे टेलीग्राम चैनल से जुड़ने के लिए आपका स्वागत है!

पसंद आये तो शेयर और लाइक करें! आपके शेयर और लाइक हमारी निरंतर प्रेरणा हैं!

 

发表 评论

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड का उपयोग किया जाता है * लेबल

ऊपर स्क्रॉल करें