अपाचे एमपीएम - वर्कर बनाम प्रीफ़ॉर्क


13

मैं यह पता लगाने की कोशिश कर रहा हूं कि जो सबसे अच्छा अपाचे एमपीएम है मैं अपने वीपीएस पर स्थापित कर सकता हूं। मैंने देखा कि कुछ बेंचमार्क और एमपीएम वर्कर प्रीफ़ॉर्क एक से बेहतर प्रदर्शन कर रहे हैं, लेकिन किसी कारण से हर कोई पीएचपी सेटअप के लिए वर्कर पर प्रीफ़ॉर्क की सिफारिश करने लगता है।

क्या यह सिर्फ इसलिए है क्योंकि कुछ PHP फ़ंक्शन थ्रेड-सुरक्षित नहीं हैं? केवल setlocale()दिमाग में आता है, लेकिन मैं हर उदाहरण पर एक ही स्थान का उपयोग करूंगा, इसलिए मुझे नहीं लगता कि यह एक समस्या होगी। मेरे VPS में बहुत कम मेमोरी है और मुझे लगता है कि कार्यकर्ता MPM मेरी जरूरतों के लिए एक बेहतर मैच होगा, हालाँकि मुझे यकीन नहीं है।

क्या कोई इस बारे में अपना मन बनाने में मेरी मदद कर सकता है? धन्यवाद!


पुनश्च: मैं भी nginx और lighttpd में देखा है। nginx भयानक लगता है, लेकिन मैं स्रोत से संकलन से बचने की कोशिश कर रहा हूं और मुझे अभी भी समझ नहीं आया है कि php-fpm क्या है। लाइटटैप के बारे में - इसके साथ PHP / FCGI को सेटअप करना अविश्वसनीय आसान था, लेकिन मैंने सुना है कि इसमें मेमोरी लीक है। क्या यह अभी भी सच है?


2
समस्या यह है कि जबकि कोर PHP अब थ्रेड सुरक्षित माना जाता है, जब यह एक्सटेंशन की बात आती है, तो सभी दांव बंद हो जाते हैं।
18

जवाबों:


12

अपाचे + mod_php का उपयोग करते समय आपको प्रीफ़ॉर्क का उपयोग करना चाहिए। एफएक्यू स्पष्ट रूप से कारण बताता है:

http://www.php.net/manual/en/faq.installation.php#faq.installation.apache2

मुझे उत्पादन वातावरण में एक थ्रेडेड एमपीएम के साथ अपाचे 2 का उपयोग क्यों नहीं करना चाहिए?

PHP गोंद है। यह दर्जनों वेब-पार्टी पुस्तकालयों को एक साथ चिपकाकर और इसे सभी को एक सहज ज्ञान युक्त और सहज भाषा सीखने के लिए आसान के रूप में एक सुसंगत इकाई के रूप में प्रदर्शित करके शांत वेब अनुप्रयोगों का निर्माण करने के लिए उपयोग किया जाता है। PHP का लचीलापन और शक्ति अंतर्निहित प्लेटफ़ॉर्म की स्थिरता और मजबूती पर निर्भर करती है। इसे एक काम करने वाला ओएस, एक काम करने वाला वेब सर्वर और एक साथ गोंद करने के लिए 3-पार्टी लाइब्रेरी काम करने की आवश्यकता है। जब इनमें से कोई भी काम करना बंद कर देता है तो PHP को समस्याओं की पहचान करने और उन्हें जल्दी ठीक करने के तरीकों की आवश्यकता होती है। जब आप अंतर्निहित फ्रेमवर्क को और अधिक जटिल बनाते हैं, जिसमें पूरी तरह से अलग-अलग निष्पादन थ्रेड्स नहीं होते हैं, तो खेलने के लिए प्रत्येक अनुरोध के लिए पूरी तरह से अलग मेमोरी सेगमेंट और एक मजबूत सैंडबॉक्स, आगे की कमजोरियों को PHP के सिस्टम में पेश किया जाता है।

nginx + php-fpm भी php एप्लिकेशन चलाने का एक शानदार तरीका है। Nginx को FastCGI के लिए मूल समर्थन प्राप्त है और php-fpm एक FastCGI वातावरण में php चलाने के सर्वोत्तम तरीकों में से एक है। यहाँ देखें php प्रलेखन:

http://www.php.net/manual/en/install.fpm.php


अपाचे MPMs के बारे में मुझे लगता है कि मुझे मिल गया है, प्रीफ़ॉर्क जाने का रास्ता है। मैं Apache की उच्च मेमोरी खपत के कारण nginx या lighttpd सेटअप के लिए इच्छुक हूं। Lighttpd और PHP-FCGI एप्टीट्यूड के साथ इंस्टॉल होने पर आउट ऑफ बॉक्स काम करता है, हालाँकि मुझे यकीन नहीं है कि अगर मेमोरी लीक हुई तो हर कोई 06/07 में वापस आने की बात करता है, अभी भी मौजूद हैं। मैं यह भी पढ़ता हूं कि Nginx का CPU उपयोग कम है लेकिन मैं इसे PHP-CGI के साथ काम करने के लिए PHP- FPM के साथ अकेले नहीं कर सकता। क्या पैकेज मैनेजर का उपयोग करके उबंटू पर इसे स्थापित करने का एक आसान तरीका है? क्या आप इस विषय पर कोई पढ़ने की सलाह देते हैं?
एलिक्स एक्सल

मल्टीवर्स सक्षम होने के साथ, मैं ल्यूसिड पर "एन्ट-गेट इंस्टाल निगंक्स" में सक्षम था और यह एक विजेता की तरह चलता है - मैं उत्पादन प्रणालियों पर उपयोग कर रहा हूं। यहाँ एक अच्छा प्रारंभिक बिंदु उदाहरण है, howtoforge.com/… लेकिन हमेशा YMMV के रूप में।
डायल

मैं apt का उपयोग करके nginx स्थापित करने में सक्षम हूं, लेकिन मैं इसे PHP दुभाषिया के साथ बांधने में विफल रहा हूं। आपके द्वारा प्रदान किए गए लिंक में एक नया स्रोत है जो php5-fpmपैकेज प्रदान करता है। मैं इसे आज़माने जा रहा हूं।
एलिक्स एक्सल

यह लिंक बेहतर हो सकता है कि howtoforge.com/ ... मैं php5-fpm के लिए अपने उत्पादन सिस्टम के लिए ब्रायनमेरिसर रेपो का उपयोग कर रहा हूं।
डायल करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.