अपाचे प्रीफ़ॉर्क ऑप्टिमाइज़ेशन - सही `MaxRequestsPerChild` मान चुनना


9

मैं अपने वेब सर्वर को अधिक से अधिक कनेक्शन संभालने के लिए अनुकूलित करने का प्रयास कर रहा हूं। मैंने कई पोस्ट और अपाचे नोट्स पढ़े। मैं यह समझने की कोशिश कर रहा हूं कि मुझे किस मूल्य का चयन करना चाहिए MaxRequestsPerChild

सबसे पहले, मैंने इसे 4,000 पर सेट करने की कोशिश की है, लेकिन सर्वर को कई अनुरोधों को संभालने में कठिनाइयां आईं, इसलिए मैंने इसे उठाना शुरू कर दिया है। फिलहाल मेरी सेटिंग है:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  40000
</IfModule>

MaxRequestsPerChild40,000 पर सेट करने के बाद अधिक मेमोरी / सीपीयू का उपयोग नहीं करते हुए सर्वर अधिक कनेक्शन को संभालने में कामयाब रहा।

क्या कोई मुझे बता सकता है कि क्या यह मूल्य बहुत अधिक है या इतना अधिक मूल्य होना ठीक है?

धन्यवाद!

OS जानकारी:

[root@web06 ~]# uname -a
Linux web 2.6.18-164.el5PAE #1 SMP Thu Sep 3 04:10:44 EDT 2009 i686 i686 i386 GNU/Linux
[root@web06 ~]# free
             total       used       free     shared    buffers     cached
Mem:       3814660    3502968     311692          0     144368    2970468
-/+ buffers/cache:     388132    3426528
Swap:      5210104          0    5210104

जवाबों:


10

MaxRequestsPerChildगतिशील लिपियों को चलाते समय स्मृति रिसाव की मात्रा को सीमित करने के लिए वास्तव में केवल उपयोगी है। यदि आप केवल स्थैतिक सामग्री या बहुत छोटी / सरल स्क्रिप्ट परोस रहे हैं, तो आप शायद इसे 0 या बहुत अधिक प्रभाव के बिना सेट कर सकते हैं। यदि आप बड़ी / जटिल स्क्रिप्ट चला रहे हैं तो इसे 0 / उच्च पर सेट करने से आपकी अपाचे प्रक्रिया अधिक से अधिक मेमोरी का उपभोग करेगी। वास्तव में कितना अधिक आपके विशिष्ट अनुप्रयोग पर निर्भर करता है।

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

मैं यह देखने के लिए एक सरल परीक्षण करूंगा कि आपकी प्रक्रियाएं कितनी मेमोरी का उपयोग कर सकती हैं। MaxRequestsPerChild0 पर सेट करें और Apache पुनरारंभ करें। कुछ पृष्ठों का परीक्षण करें और देखें कि अपाचे प्रक्रियाओं का प्रारंभिक आकार क्या उपयोग कर रहा है top। कुछ घंटों / दिनों / हफ्तों के बाद फिर से जाँच करें (आपके आवेदन और पृष्ठ विचारों के आधार पर) और देखें कि यह कैसे बढ़ता है। यदि यह बहुत अधिक नहीं बढ़ता है तो इसके लिए 0 या बहुत बड़ा मूल्य MaxRequestsPerChildठीक होना चाहिए।

यदि आपके पास अपाचे प्रक्रियाओं के लिए एक अधिकतम अधिकतम आकार है (यानी, आप उन्हें 50 एमबी या उससे कम चाहते हैं) तो आप एक ही परीक्षण विभिन्न मूल्यों के साथ कर सकते हैं MaxRequestsPerChildजब तक कि आप एक मूल्य नहीं पाते हैं जो अपाचे को उससे कम रखता है।


1
मैं कैसे पृष्ठों को लोड कर सकता हूं और विंडोज सर्वर का उपयोग करके अपाचे प्रक्रियाओं का आकार देख सकता हूं?
अहमद अल्फी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.