मुझे nginx पर "बहुत अधिक फ़ाइल डिस्क्रिप्टर" त्रुटि प्रतीत होती है। बहुत खोज के बाद, समाधान स्पष्ट रूप से nginx के लिए उपलब्ध फ़ाइल डिस्क्रिप्टर की संख्या को बढ़ाने के लिए है। लेकिन मेरे लिए वहाँ पर्याप्त जानकारी नहीं है, ताकि मैं इसे सार्थक और सुरक्षित तरीके से कर पाऊँ। यहां मुख्य बिंदु हैं जो अधिकांश फोरम / ईमेल थ्रेड कवर करते हैं:
- ओएस की अपनी कुल फ़ाइल डिस्क्रिप्टर सीमा है (मेरे सिस्टम पर,
cat /proc/sys/fs/file-max
"100678" आउटपुट) - प्रत्येक उपयोगकर्ता की अपनी सीमा भी हो सकती है (लेकिन मेरे सिस्टम पर,
ulimit
किसी भी उपयोगकर्ता आउटपुट के रूप में चल रहा है "असीमित" अधिक विस्तार के साथ नीचे अपडेट देखें ) - कुछ लोगों ने इस व्यक्ति की कही गई बातों के साथ कुछ कहा: '' निर्देशात्मक कार्यकर्ता_प्रबंधित_नौफाइल "कितने" को निर्दिष्ट नहीं करता है, यह ऑपरेटिंग सिस्टम की सीमा है। यदि यह पर्याप्त नहीं है, तो निर्देशकीय कर्मचारी_श्रीमित_नोफाइल इस सीमा को बढ़ाने के लिए त्वरित और गंदा तरीका देता है। ' इसलिए मुझे लगता है कि यह है कि यह "बेहतर" है कि कॉन्फ़िगरेशन में nginx OS उपयोगकर्ता के लिए सीमा निर्धारित करें?
मैं प्रति कार्यकर्ता कनेक्शन की संख्या से अधिक वर्कर_रोलिट_ऑनफाइल वैल्यू में फेंक सकता हूं और इसे एक दिन कह सकता हूं, लेकिन मुझे लगता है कि मैं वास्तव में नहीं जानता कि यहां क्या हो रहा है।
- प्रति कार्यकर्ता की सीमा OS की सीमा से कम क्यों होगी?
- मुझे कैसे पता चलेगा कि मेरी सीमा अब क्या है?
अद्यतन : दोनों रूट और एक सामान्य उपयोगकर्ता के लिए, ulimit "असीमित", BUT ulimit -Hn
और ulimit -Sn
दोनों आउटपुट 1024 को आउटपुट करता है