पीएम को कैसे और कहां कॉन्फ़िगर करें । max_children के लिए php-fpm के साथ डोकर?

एनजीआईएनएक्स और पीएचपी-एफपीएम के साथ एक वेब एप्लिकेशन में, मैंने धीमेपन के क्षणों को देखा है और लॉग का विश्लेषण किया है, मुझे यह संदेश मिला, जो समय-समय पर दिखाई देता है:

[19-Nov-2017 19:24:09] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

कुछ शोध के बाद, मैंने पीएचपी में मूल्यों में वृद्धि की । ini विन्यास फाइल, पीएचपी कंटेनर को रोक दिया और हटा दिया और इसे फिर से बनाया, वॉल्यूम पर फ़ाइल पर सेट की गई सेटिंग के लिए प्रभाव पड़ा।

कंटेनर के अंदर कॉन्फ़िगरेशन फ़ाइल का विश्लेषण करते हुए, यह मेरे द्वारा सेट किए गए नए मानों के साथ है, पीएम के बारे में त्रुटि संदेश।मैक्स_चिल्ड्रेन (5) दिखाई देना जारी है ।

Here is my docker-compose.ymlversion: '2'services:               pi_web:        build: ./nginx        ports:            - "80:80"            - "443:443"        volumes:            - ../src:/src            - ./nginx/conf.d:/etc/nginx/conf.d            - ./nginx/nginx.conf:/etc/nginx/nginx.conf            - /etc/letsencrypt:/etc/letsencrypt    pi_php:        build: ./php        volumes:            - ../src:/src            - ./php/config/php.ini:/usr/local/etc/php/php.ini

यहाँ का एक टुकड़ा है ./php/config/php.ini:

pm = dynamicpm.max_children = 40pm.start_servers = 15pm.min_spare_servers = 15pm.max_spare_servers = 25

और, अगर मैं दौड़ता हूं:

$ docker exec -it docker_pi_php_1 cat /usr/local/etc/php/php.ini

मैं ऊपर दिए गए स्निपेट पर समान मान देखता हूं ।

कंटेनर के अंदर कॉन्फ़िगरेशन फ़ाइल का पथ सही है, मैं भाग गया:

$ php --ini 

कंटेनर के अंदर और पथ भरी हुई कॉन्फ़िगरेशन फ़ाइलों की सूची में है ।

मैंने इस समस्या को दूर करने की कोशिश में अपना दिमाग तला हुआ है, लेकिन अभी तक मैं सफल नहीं हुआ हूं ।

कोई विचार?

मैं गलत हो सकता हूं, लेकिन यह मानते हुए कि आप आधिकारिक पीएचपी छवियों का उपयोग कर रहे हैं, उन पीएम सेटिंग्स को अंदर रखा जाना चाहिए /usr/local/etc/php-fpm.d/ कॉन्फ एक्सटेंशन वाली फ़ाइल के अंदर निर्देशिका । अनुसार करने के लिए PHP डॉक्स, उन सेटिंग कर रहे हैं FPM संबंधित और हालांकि वे उपयोग करते हैं php.ini सिंटैक्स, उन्हें एक अलग फ़ाइल में रखा जाना चाहिए, इसलिए मेरा मानना है कि आपकी पीएम सेटिंग्स को अनदेखा किया जा रहा है । यह Dockerfile PHP में मदद की मुझे यह पता लगाने के लिए कि वे कॉन्फ फाइलें कहां होनी चाहिए ।

अगर आपके पास है तो मैं जांच करूंगा /usr/local/etc/php-fpm.d/www.conf अपने कंटेनर के अंदर फ़ाइल जहां कि max_children अब सेट है 5. यदि ऐसा है तो मुझे लगता है कि आप अपने डॉकरफाइल को एक नया डब्ल्यूडब्ल्यूडब्ल्यू कॉपी करने के लिए संशोधित कर सकते हैं । कॉन्फ फ़ाइल जो उच्च मान सेट करती है pm.max_children.

मुझे आधिकारिक के साथ जहाज करने वाली फ़ाइल का उपयोग करके विशिष्ट सेटिंग्स को अधिलेखित करने के लिए स्पष्ट लगता है php:7.3-fpm छवि: /usr/local/etc/php-fpm.d/zz-docker.conf

यह फ़ाइल कुछ इस तरह से समाप्त होती है:

[www]listen = 9000

तो हम इसे केवल वही जोड़ सकते हैं जो हमें डब्ल्यूडब्ल्यूडब्ल्यू पूल के लिए सेट करने की आवश्यकता है ।

उदाहरण के लिए:

# SETUP PHP-FPM CONFIG SETTINGS (max_children / max_requests)RUN echo 'pm.max_children = 15' >> /usr/local/etc/php-fpm.d/zz-docker.conf && \    echo 'pm.max_requests = 500' >> /usr/local/etc/php-fpm.d/zz-docker.conf

मुझे लगता है कि यह सरल और स्पष्ट है ।