विभिन्न पर्ल स्क्रिप्ट्स (सर्वर साइड शामिल) वेबसाइट पर कई फ़ंक्शंस के साथ एक पर्ल मॉड्यूल को कॉल कर रहे हैं। संपादित करें: स्क्रिप्ट का उपयोग कर रहे हैं किसी फ़ोल्डर से पुस्तकालयों का संदर्भ देने के लिए lib का उपयोग करें। व्यस्त अवधि के दौरान स्क्रिप्ट (पुस्तकालय नहीं) ज़ोंबी बन जाते हैं और सर्वर को अधिभारित करते हैं।अपाचे 1.3 के तहत चलने वाले पर्ल सीजीआई स्क्रिप्ट में ज़ोंबी से कैसे बच सकता हूं?
सर्वर सूचियां:
319 ? Z 0:00 [scriptname1.pl] <defunct>
320 ? Z 0:00 [scriptname2.pl] <defunct>
321 ? Z 0:00 [scriptname3.pl] <defunct>
मैं प्रत्येक के उदाहरण के सैकड़ों की है।
संपादित करें: हम उपयोग नहीं कर रहे कांटा, सिस्टम या कार्यकारी के अलावा लघु उद्योग के निर्देश फार्म
<!--#exec cgi="/cgi-bin/scriptname.pl"-->
जहाँ तक मुझे पता है, इस मामले में खुद को इस प्रक्रिया के मालिक हो जाएगा लिये httpd। MaxRequestPerChild 0 पर सेट है जो बच्चे की प्रक्रिया समाप्त होने से पहले माता-पिता को मरने नहीं देना चाहिए।
अब तक हमने पाया है कि अस्थायी रूप से कुछ स्क्रिप्ट को निलंबित करने से सर्वर को निष्क्रिय प्रक्रियाओं के साथ सामना करने में मदद मिलती है और इसे गिरने से रोकने में मदद मिलती है, हालांकि ज़ोंबी प्रक्रियाएं अभी भी संदेह के बिना बन रही हैं। जाहिर है gbacon अपने सिद्धांत के साथ सत्य के सबसे नज़दीकी प्रतीत होता है कि सर्वर लोड से निपटने में सक्षम नहीं है।
इन प्रक्रियाओं को छोड़कर httpd क्या हो सकता है? क्या इन्हें होने से रोकने के लिए कोई सर्वोत्तम अभ्यास है?
धन्यवाद
उत्तर: बिंदु रोब को जाता है। जैसा कि वह कहता है, सीजीआई स्क्रिप्ट जो एसएसआई उत्पन्न करती हैं, उनमें एसएसआई का संचालन नहीं होगा। अपाचे 1.3 अनुरोध चक्र में सीजीआई के चलने से पहले एसएसआई का मूल्यांकन होता है। यह अपाचे 2.0 और बाद में तय किया गया था ताकि सीजीआई एसएसआई कमांड उत्पन्न कर सके।
चूंकि हम अपाचे 1.3 पर चल रहे थे, प्रत्येक पृष्ठ के लिए एसएसआई निष्क्रिय प्रक्रियाओं में बदल गया था। हालांकि सर्वर उन्हें साफ़ करने की कोशिश कर रहा था, लेकिन यह सफल होने में सक्षम होने के लिए चल रहे कार्यों के साथ बहुत व्यस्त था। नतीजतन, सर्वर गिर गया और उत्तरदायी बन गया। एक अल्पकालिक समाधान के रूप में हमने सभी एसएसआई की समीक्षा की और सर्वर संसाधनों को मुक्त करने और इसे साफ करने के लिए समय देने के लिए कुछ प्रक्रियाओं को क्लाइंट साइड में स्थानांतरित कर दिया। बाद में हमने अपाचे 2.2 में अपग्रेड किया।
आपको एक पाइप बम फेंकने की आवश्यकता है –
डबल बैरल शॉट-गन अच्छी तरह से काम करता है। – Nate
उन्हें अपने मस्तिष्क को भी खाने न दें। – Hai