अप्पा लिमिट को खूंखार 256 मैक्स कनेक्शन से टकराने के बाद क्या करना है


9

मेरे सिर को खरोंचने के बाद यह पता लगाने की कोशिश की जा रही है कि मेरी साइट इतनी धीमी गति से जवाब दे रही थी, हालांकि सर्वर संसाधन ठीक हैं, मैंने आखिरकार अपाचे स्थिति की जांच की और पाया:

78 requests/sec - 0.7 MB/second - 8.5 kB/request
256 requests currently being processed, 0 idle workers

ऐसा प्रतीत होता है कि मेरी अपाचे सचमुच कनेक्शन के साथ अधिकतम है। मेरी साइट पर जाने की कोशिश करने वाला कोई भी व्यक्ति "प्रतीक्षा सूची" में डाल देता है जब तक कि अपाचे फिर से मुक्त नहीं हो जाता।

ऐसा लगता है कि मेरे पास दो विकल्प हैं।

ए) अधिकतम कनेक्शन सीमा 256 से ऊपर उठाएं। हालांकि इस लेख के अनुसार यह इतना आसान नहीं है:

डिफ़ॉल्ट रूप से, MaxClients पैरामीटर 256 की कठिन सीमा में संकलित है। हालांकि अपाचे को फिर से जमा करके इसे बदला जा सकता है। कुछ वितरण, या होस्टिंग कंपनियां इस सीमा को बहुत अधिक मान के लिए बढ़ाती हैं, जैसे कि बड़े भार से निपटने के लिए 512 या 1024।

बी) स्क्रिप्ट का पता लगाएँ जो बहुत अधिक समय ले रहे हैं। यह मुझे बहुत अधिक मुश्किल लगता है, क्योंकि अधिकांश अपाचे प्रक्रियाएं बस दिखाई देती हैं और फिर से गायब हो जाती हैं। इसके अलावा, मेरी साइटें PHP स्क्रिप्ट बहुत अच्छी तरह से अनुकूलित की जाती हैं ... और एक बार फिर, सर्वर संसाधन ठीक हैं:

Server load 2.69 (8 CPUs)   
Memory Used 25.33% (2,039,108 of 8,048,804) 
Swap Used   1.32% (54,156 of 4,095,992)

कौन सा विकल्प (यदि उनमें से कोई भी) मुझे चुना जाना चाहिए और मुझे यह कैसे करना चाहिए?

संपादित करें

अधिक जानकारी: सर्वर संस्करण: अपाचे / 2.2.23 (यूनिक्स) mod_ssl / 2.2.23 OpenSSL / 1.0.0-fips DAV / 2 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4.2.2635

HTTP कॉन्फ़िडेंस: http://pastebin.com/yBeLt6mP

पैतृक अनुरोध नमूना: http://pastebin.com/vzUVDMPR

पाठ-लपेटें टॉगल करें यदि पेस्ट-डिब्बे अजीब दिखा।


आपके द्वारा उद्धृत लेख ~ 6 साल पुराना है। सॉफ्टवेयर बदलता है। देखें शेन का जवाब।
क्रिस एस

1
@ क्रिस आगे भी आउट - डेटेड-इन लिमिट एक 1.x चीज़ थी (2002 में 2.0 आई), और आर्टिकल में भी स्पष्ट रूप से 2.0 डॉक्स से लिंक है।
शेन मैडेन

जवाबों:


10

वह लेख गलत है; MaxClientsप्रीफ़ॉर्क MPM का उपयोग करते समय 256 से ऊपर उठाया जा सकता है (जो कि मुझे लगता है कि आप वर्तमान में समस्या के अपने विवरण के आधार पर उपयोग कर रहे हैं)। से प्रलेखन :

गैर-थ्रेडेड सर्वर (यानी, प्रीफ़ॉर्क) के लिए, MaxClientsअनुरोधों को पूरा करने के लिए लॉन्च की जाने वाली अधिकतम बाल प्रक्रियाओं में अनुवाद किया जाता है। डिफ़ॉल्ट मान 256 है; इसे बढ़ाने के लिए, आपको भी उठाना होगा ServerLimit

ServerLimitवह है जिसमें हार्ड-संकलित सीमा है, लेकिन यह अतीत का रास्ता है जहां आपको कभी भी अपने सर्वर के बिना किसी अन्य अड़चन में चले जाना चाहिए। प्रलेखन :

ServerLimit 20000सर्वर में संकलित की एक कठिन सीमा है (प्रीफॉर्क एमपीएम 200000 के लिए)। यह टाइपो के कारण होने वाले खराब प्रभावों से बचने के लिए है।

तो, अगर आप 512 जैसी किसी चीज़ के लिए अपनी ग्राहक सीमा बढ़ाना चाहते हैं, तो:

MaxClients 512
ServerLimit 512

आपको यह भी देखना चाहिए कि आप किस एमपीएम का उपयोग कर रहे हैं, क्योंकि प्रीफॉर्क के अलावा अन्य एमपीएम स्केल के लिए बेहतर हैं। अधिक जानकारी के लिए यहाँ देखें ।


मुझे कोर httpd -l। सी.ओ. मुझे लगता है कि इसका मतलब है कि मैं कार्यकर्ता एमपीएम चला रहा हूं?
kmoney12

दरअसल @hellohellosharp - उस स्थिति में, आप संभवतः अपने समायोजित करना चाहेंगे MaxClients, ServerLimit, ThreadsPerChild, और ThreadLimit। क्या आप अपने वर्तमान कर्मी से कॉन्फ़िगर कर सकते हैं httpd.conf?
शेन मैडेन

हां ... क्या इसे सार्वजनिक रूप से पोस्ट करने में कोई खतरा है? उम्मीद नहीं, यहाँ है: pastebin.com/yBeLt6mP
kmoney12

नहीं, सबसे httpd.conf फ़ाइलों को पोस्ट करने में कोई समस्या नहीं है। बस सुनिश्चित करें कि आपके पास पासवर्ड / उपयोगकर्ता नाम / आदि के साथ टिप्पणियों की तरह कुछ अजीब नहीं है। ये कभी-कभी प्रॉक्सी कॉन्फ़िगरेशन सेक्शन में भी रेंगते हैं और पसंद भी करते हैं। बहुत से लोग आईपी और डोमेन नामों को भी संपादित करना पसंद करते हैं, बस इसलिए वे ध्यान आकर्षित नहीं करते हैं
क्रिस एस

1
स्थिति मॉड्यूल आपको ये विवरण दिखा सकता है।
ETL

-1

मेरा सुझाव है कि आप एक रिवर्स प्रॉक्सी का उपयोग करें, नगनेक्स या लाइटटपैड जैसी कोई चीज अपाचे की तुलना में कई अधिक कनेक्शनों को संभाल सकती है। आपकी साइट htaccess का उपयोग कैसे करती है इसके आधार पर आप fcgi और फोरगो एपा के साथ nginx / lighttpd का भी पूरी तरह से उपयोग कर सकते हैं।


4
वास्तव में?? उसे विन्यास की दो पंक्तियों को जोड़ने की जरूरत है httpd.confऔर आपका समाधान उसके द्वारा चलाए जा रहे अधिकांश सॉफ़्टवेयर को चीर देना है और उसे बदलना है ?! सॉफ़्टवेयर के हर टुकड़े में समस्याएँ हैं, लेकिन अशिक्षित दुरुपयोग से समस्याएँ और बदतर हो जाती हैं।
क्रिस एस

अंततः nginx अधिक सक्रिय कनेक्शनों को संभाल सकता है, ओपी के लिए यह तय करने के लिए कि क्या उपयोग करना है, मैं सिर्फ अपने सुझाव को आगे रख रहा था।
शोशोमीगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.