गैर-फोर्किंग (उर्फ सिंगल-थ्रेडेड या select()
-आधारित) लाइटटीपीडी या एनजिनक्स जैसे वेबसर्वर लोकप्रियता में अधिक से अधिक लाभ प्राप्त कर रहे हैं।एक गैर-फोर्किंग वेब सर्वर कैसे काम करता है?
जबकि सर्वरों को फोर्किंग सर्वर ( पर विस्तार के विभिन्न स्तर) समझाते हुए दस्तावेज़ों की एक बड़ी संख्या है, गैर-फोर्किंग सर्वर के लिए दस्तावेज़ स्पैस है।
मैं एक पक्षी आँखों एक गैर forking वेब सर्वर काम करता हैकैसे के दृश्य के लिए देख रहा हूँ। (छद्म-) कोड या एक राज्य मशीन आरेख, कम से कम पर छीन लिया गया, यह बहुत अच्छा होगा।
मुझे निम्नलिखित संसाधनों से अवगत है और उन्हें उपयोगी पाया गया है।
हालांकि, मैं सिद्धांतों, नहीं कार्यान्वयन विवरण में दिलचस्पी है।
विशेष रूप से:
क्यों सर्वर के इस प्रकार कभी कभी कहा जाता है गैर अवरुद्ध, जब
select()
अनिवार्य रूप से ब्लॉक?अनुरोध की प्रक्रिया में कुछ समय लग सकता है। इस समय के दौरान नए अनुरोधों के साथ क्या होता है जब कोई विशिष्ट श्रोता धागा या प्रक्रिया नहीं होती है? अनुरोध किसी भी तरह से बाधित या समय कटा हुआ प्रसंस्करण है?
संपादित करें: मैं इसे समझते हैं, जबकि एक अनुरोध संसाधित होने के रूप में (उदाहरण, फ़ाइल को पढ़ने या CGI स्क्रिप्ट रन) सर्वर नए कनेक्शन स्वीकार नहीं कर सकते। इसका मतलब यह नहीं होगा कि अगर कोई सीजीआई स्क्रिप्ट चलती है तो ऐसा सर्वर नए कनेक्शन के को याद कर सकता है, मान लें, 2 सेकंड या तो?
द्वारा यूनिक्स नेटवर्क प्रोग्रामिंग मुझे लगता है कि चाहते हैं कि एक गैर forking वेब सर्वर किसी भी वेब सर्वर है कि गतिशील सामग्री की एक छोटी सी राशि से अधिक सर्वर चाहता था करने के लिए एक बुरी मैच होगा । – Eddie
@Eddie कम से कम नहीं। एन प्रोसेसर के साथ, एन थ्रेड से अधिक होने से आपको और अधिक काम करने की अनुमति नहीं मिल रही है। एक उचित ढंग से डिज़ाइन किया गया एसिंक्रोनस सर्वर फोर्किंग या थ्रेडेड के रूप में उतना ही काम कर सकता है। –
@ निक जॉनसन: यह निर्भर करता है। यदि आपके पास एन प्रोसेसर और एन थ्रेड हैं, तो इस सीमा तक कि कोई भी अनुरोध I/O के लिए प्रतीक्षा करने वाले ब्लॉक का अनुरोध करता है, आप वास्तव में अपने प्रोसेसर का उपयोग नहीं कर रहे हैं जब तक कि आप अधिक धागे नहीं बनाते। उदाहरण के लिए, यदि आपको गतिशील अनुरोध को पूरा करने के लिए डेटाबेस पर जाना है, तो उस थ्रेड को तब तक रोक दिया जाता है जब तक आपको कोई प्रतिक्रिया न मिल जाए। केवल एन धागे के साथ, आप अपना अधिकांश समय इंतजार कर सकते हैं और वास्तव में आपके समय की एक छोटी राशि वास्तव में प्रसंस्करण कर सकते हैं। – Eddie