आप अपाचे में समवर्ती कनेक्शन की अधिकतम संख्या कैसे बढ़ाते हैं?


102

अपाचे के लिए समवर्ती कनेक्शन की अधिकतम संख्या बढ़ाने के लिए मुझे क्या httpd सेटिंग्स की आवश्यकता है? ध्यान दें: मैंने मुख्य रूप से एक एपीआई सर्वर के बाद से KeepAlive को बंद कर दिया।

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive Off

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

##
## Server-Pool Size Regulation (MPM specific)
## 

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

जवाबों:


170

यहाँ MaxClients और MaxRequestsPerChild की गणना के बारे में विस्तृत विवरण दिया गया है

http://web.archive.org/web/20160415001028/http://www.genericarticles.com/mediawiki/index.php?title=How_to_optimize_apache_web_server_for_maximum_concurrent_connections_or_increase_max_clients_in_apache

ServerLimit 16
StartServers 2
MaxClients 200
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25

सबसे पहले, जब भी एक अपाचे शुरू किया जाता है, तो यह 2 बच्चे की प्रक्रिया शुरू करेगा जो StartServersपैरामीटर द्वारा निर्धारित किया जाता है। फिर प्रत्येक प्रक्रिया ThreadsPerChildपैरामीटर द्वारा निर्धारित 25 थ्रेड्स शुरू करेगी ताकि इसका मतलब है कि 2 प्रक्रिया केवल 50 समवर्ती कनेक्शन / ग्राहक अर्थात 25x2 = 50 सेवा कर सकती है। अब यदि अधिक समवर्ती उपयोगकर्ता आते हैं, तो एक और बाल प्रक्रिया शुरू होगी, जो अन्य 25 उपयोगकर्ताओं को सेवा दे सकती है। लेकिन कितने बच्चे की प्रक्रिया शुरू की जा सकती है ServerLimitपैरामीटर द्वारा नियंत्रित किया जाता है, इसका मतलब यह है कि उपरोक्त कॉन्फ़िगरेशन में, मेरे पास कुल 16 बच्चे प्रक्रियाएं हो सकती हैं, प्रत्येक बच्चे की प्रक्रिया में 25 थ्रेड संभाल सकते हैं, कुल हैंडलिंग 16x25 = 400 समवर्ती उपयोगकर्ता। लेकिन अगर इसमें परिभाषित संख्या MaxClientsकम है जो कि यहाँ 200 है, तो इसका मतलब है कि 8 बाल प्रक्रियाओं के बाद, कोई अतिरिक्त प्रक्रिया शुरू नहीं होगी क्योंकि हमने ऊपरी टोपी को परिभाषित किया हैMaxClients। इसका मतलब यह भी है कि अगर मैं MaxClients16 बच्चों की प्रक्रियाओं और 400 कनेक्शनों के बाद 1000 पर सेट होता हूं , तो कोई अतिरिक्त प्रक्रिया शुरू नहीं होगी और हम 400 से अधिक समवर्ती ग्राहकों की सेवा नहीं कर सकते हैं, भले ही हमारे पास MaxClientपैरामीटर बढ़ा हो । इस मामले में, हमें ServerLimit1000/25 तक भी वृद्धि करने की आवश्यकता है, MaxClients/ThreadsPerChild=40 इसलिए यह सर्वर 1000 क्लाइंट के लिए ऑप्टिमाइज़्ड कॉन्फ़िगरेशन है

<IfModule mpm_worker_module>
    ServerLimit          40
    StartServers          2
    MaxClients          1000
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

24
2.3.13 संस्करण के बाद कुछ बदलाव प्रतीत होते हैं। उदाहरण के लिए MaxClients अब MaxRequestWorkers है।
l।

2
कृपया सलाह दें: वर्तमान में लिंक की गई साइट वर्तमान में मैलवेयर (और पोर्न) परोस रही है ... यह शायद हैक हो गया है ... यदि आप स्टैकवॉटरफ़्लो
योआन

1
ठीक है, लेकिन इस इष्टतम कॉन्फ़िगरेशन के लिए आवश्यक मेमोरी और सीपीयू की आवश्यकता क्या है। या कैसे मैं इस अनुकूलन के लिए सीपीयू और मेमोरी पर भी विचार करूं।
भारतीय विचित्रवीर्य

मैंने इस कॉन्फ़िगरेशन को लागू किया और अभी भी वर्तमान कनेक्शन तक पहुंच गया है ... लगता है कि एक कठिन सीमा कहीं और है
जॉर्ज कॉर्निज़ो बेलिडो

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.