php-fpm: start_servers, min_spare_servers, max_spare_servers समझने में मदद


10

मैं अपने सर्वर के लिए अपने php-fpm इंस्टालेशन को ट्यून करने की कोशिश कर रहा हूं, और मुझे यह पता लगाने में परेशानी है कि क्या करना है pm.start_servers, pm.min_spare_serversऔर pm.max_spare_serversवैरिएबल्स के साथ क्या करना है । मै इस्तेमाल कर रहा हूँpm = dynamic

pm.max_childrenपूरी तरह से स्पष्ट है। प्रत्येक बच्चे की प्रक्रिया एक समय में 1 वेब क्लाइंट का कार्य करती है। ठीक है। "सर्वर" क्या है? स्पष्ट रूप से, मेरे पास डिफ़ॉल्ट कॉन्फ़िगरेशन के आधार पर, 1 सर्वर 1 से अधिक बच्चे की सेवा कर सकता है। ऊपरी सीमा क्या है? मुझे # बच्चों / सर्वर के लिए अंगूठे के नियम के रूप में क्या उपयोग करना चाहिए? या यह सब से संबंधित है? किसी मंच पर, कोई दावा कर रहा था कि सर्वर का # 2% cpu कोर होना चाहिए, लेकिन मैंने अनुशंसित कॉन्फ़िगरेशन को देखा है जहां संख्या बहुत अधिक थी, 40-50।

न तो PHP प्रलेखन और न ही कई "ट्यूनिंग php-fpm" लेख वहाँ सभी मददगार रहे हैं।

जवाबों:


14

मूल रूप से किसी भी समय php-fpm पर चलने वाली प्रक्रियाओं की संख्या बहुत ही विन्यास योग्य होती है जब आप इसे dynamicपसंद करते हैं। करने के लिए सेट जब staticवहाँ होगा हमेशा कि चलने वाली कई बच्चे प्रक्रियाओं हो। आम तौर पर आप इसे संसाधनों के संरक्षण के लिए गतिशील पर सेट करते हैं। प्रत्येक बच्चे की प्रक्रिया एक अनुरोध को संभाल सकती है। ऊपरी सीमा इस बात पर निर्भर करती है कि आपका php एप्लिकेशन कितना भारी है और आपको कितना ट्रैफ़िक मिलता है। आपको प्रत्येक बच्चे की स्मृति खपत की औसत गणना भी करनी चाहिए और सुनिश्चित करें कि आप कभी भी अपने सर्वर पर स्थापित राम की मात्रा को पार करने की अनुमति नहीं देते हैं या आप स्वैप करना शुरू कर देंगे या कर्नेल को मारना शुरू कर देंगे।

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives:
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
; Note: This value is mandatory.

इन विकल्पों को सेट करते समय निम्नलिखित पर विचार करें:

  • आपका औसत अनुरोध कब तक है?
  • साइट (साइट) पर एक साथ आने वाले आगंतुकों की अधिकतम संख्या कितनी है?
  • प्रत्येक बच्चे की औसतन कितनी मेमोरी खपत होती है?

3
बहुत उपयोगी, अंतर्दृष्टि के लिए धन्यवाद। गणना के लिए भी उपयोगी यह ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'देखने के लिए कि प्रत्येक कार्यकर्ता के पास कितनी मेमोरी है। से लिया community.webcore.cloud/tutorials/...
मैट निंजा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.