2012-09-17 26 views
5

मैं nginx को फ्रंटएंड और php-fpm के रूप में चला रहा हूं क्योंकि prps php फ़ाइलों को बैकएंड के रूप में। मुझे अपने /var/log/php-fpm/error.log पर "बहुत सारी खुली फ़ाइलें" त्रुटि मिल रही है। मैंने कठोर & नरम ulimit 65535 में वृद्धि की है और ऐसा लगता है कि समस्या हल नहीं कर सकता है।php-fpm बहुत खुली फ़ाइलें

/var/log/php-fpm/error.log

[17-Sep-2012 14:43:51] ERROR: failed to prepare the stderr pipe: Too many open files (24) 
[17-Sep-2012 14:43:52] ERROR: failed to prepare the stderr pipe: Too many open files (24) 

ulimit

65535 

/etc/php-fpm/www.conf

-n
rlimit_files = 65535 

उत्तर

3

आप lsof (खुली फाइलों की सूची) के साथ जांच कर सकते हैं, शायद इसे स्थापित करने की आवश्यकता है क्योंकि अधिकांश लिनक्स डिस्ट्रो इसे डिफ़ॉल्ट रूप से शामिल नहीं करते हैं। यह आपको एक दृश्य देना चाहिए कि कौन सी खुली फाइलें हैं और जिन प्रक्रियाओं के मालिक हैं (इसलिए आप php के लिए grep कर सकते हैं)। lsof करें उनको गिनने के लिए wc -l। क्या वास्तव में बहुत खुले हैं? या शायद त्रुटि गहराई के लक्षण की तरह अधिक है। यदि आप जानते हैं कि वे क्या हैं, तो शायद यह संकेत मिलेगा कि क्यों ...

इस तथ्य को देखते हुए कि यह एसटीडीईआरआर का उल्लेख करता है, शायद यह व्यापक अर्थ में संबंधित त्रुटि है (शायद php-fpm के लिए त्रुटि कॉन्फ़िगरेशन पैरामीटर?)

इसके अलावा, यह देखने के लिए जांचें कि क्या आप यूनिक्स सॉकेट या टीसीपी एक का उपयोग कर रहे हैं, टीसीपी विकल्प को आजमाएं जब तक कि आप बीएसडी पर न हों, जहां यूनिक्स सॉकेट को तेजी से काम करने के लिए प्रतिष्ठित किया जाता है।

+1

धन्यवाद ग्लेन, मैंने लिनक्स ओएस स्तर पर ओपन एफडी सीमा बढ़ा दी है और समस्या हल हो गई है। http://www.cyberciti.biz/faq/linux-unix-nginx-too-many-open-files/ – Ryan