2016-06-02 5 views
5

एक उच्च संख्या में worker_rlimit_nofile कैसे सेट करता है और यह मैक्सीम क्या हो सकता है या इसकी अनुशंसा की जाती है?Nginx worker_rlimit_nofile

दूसरी सबसे बड़ी सीमा यह है कि ज्यादातर लोगों में भी अपने ओएस से संबंधित है चलाएँ:

मैं निम्नलिखित सलाह का पालन करने की कोशिश कर रहा हूँ। एक खोल खोलें, उपयोगकर्ता nginx के लिए su और चलाएं और फिर ulimit -a आदेश चलाएं। वे मान सभी सीमाएं हैं nginx से अधिक नहीं हो सकता है। कई डिफ़ॉल्ट प्रणालियों में खुले फाइल मान बल्कि सीमित हैं, सिस्टम पर मैंने अभी जांच की है कि यह 1024 पर सेट किया गया था। यदि nginx ऐसी स्थिति में चलता है जहां यह इस सीमा को हिट करता है तो यह त्रुटि लॉग करेगा (24: बहुत अधिक खुली फ़ाइलें) और ग्राहक को एक त्रुटि वापस। स्वाभाविक रूप से nginx 1024 से अधिक फ़ाइलों को संभाल सकता है और संभावना है कि आपके ओएस भी हैं। आप इस मूल्य को सुरक्षित रूप से बढ़ा सकते हैं।

ऐसा करने के लिए आप या तो उलिमिट के साथ सीमा निर्धारित कर सकते हैं या आप अपनी इच्छित खुली फ़ाइल डिस्क्रिप्टर सीमा को परिभाषित करने के लिए worker_rlimit_nofile का उपयोग कर सकते हैं।

से: https://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-traffic-loads/

उत्तर

5

worker_rlimit_nofile = worker_connections * worker_processes

+1

हालांकि [nginx डॉक्स] (http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile) 100 नहीं हैं इसके बारे में% स्पष्ट, ऐसा लगता है कि 'worker_rlimit_nofile' है [प्रत्येक कार्यकर्ता पर लागू] [https://www.masv.io/boost-nginx-connection-limits/)। इसलिए 'वर्कर_प्रोसेसेस' के साथ गुणा करने का कोई मतलब नहीं है। लेकिन आपको 2 से गुणा करना पड़ सकता है, क्योंकि एक कार्यकर्ता को प्रति कनेक्शन 2 फाइल डिस्क्रिप्टर की आवश्यकता होती है - एक क्लाइंट के लिए, एक सेवारत फ़ाइल (या अपस्ट्रीम, प्रॉक्सी ...) के लिए। – Bbak