2009-07-31 13 views
15

क्या खुली फ़ाइलों की अधिकतम संख्या कुछ "अनंत" मान पर सेट करना संभव है या यह एक संख्या होनी चाहिए?लिनक्स पर - असीमित पर अधिकतम खुली फ़ाइलें सेट करें। मुमकिन?

मुझे डेमॉन उपयोगकर्ता के लिए "असीमित" होने के लिए वर्णक सीमा निर्धारित करने की आवश्यकता थी और मैं यह निर्धारित करने की कोशिश कर रहा हूं कि यह संभव है या इसे कैसे किया जाए। मैंने कुछ मेलिंग सूचियों को "अधिकतम" मान का उपयोग किया है जिसका उपयोग किया जा सकता है (जैसा कि: "myuser hard nofile max" है, लेकिन अब तक मैन पेज और संदर्भ मैंने परामर्श दिया है, इसे वापस नहीं लेते हैं।

यदि मैं 'अधिकतम' या इसी तरह का उपयोग नहीं कर सकता, तो मैं यह जानना चाहता हूं कि फ़ाइलों की अधिकतम संख्या (सैद्धांतिक रूप से) क्या है, इसलिए मेरे पास जो भी संख्या है, उसके लिए मेरे पास कुछ आधार है। मैं नहीं चाहता 100000000 या कुछ का उपयोग हो, तो एक ऊपरी बाध्य प्राप्त करने के लिए एक और अधिक उचित तरीका

मैं RHEL 5 का उपयोग कर रहा है, तो यह महत्वपूर्ण है

अद्यतन:।। मैं एक बेवकूफ जब यह सवाल लेखन की बात आती हूँ। आदर्श रूप में मैं इसे सीमा में करना चाहता हूं s.conf फ़ाइल (जहां वह "अधिकतम" से आएगा)। क्या यह कोई जवाब बदलता है?


टिप्पणियों के लिए धन्यवाद। यह एक जेबीएसएसएसएस उदाहरण के लिए है और मैं एक डेमॉन नहीं लिख रहा हूं इसलिए मुझे नहीं पता कि setrlimit() मेरे लिए उपयोगी है या नहीं। हालांकि, जेफोमी - मुझे इन्फिनिटी की परिभाषा पसंद है :) मैंने एक पोस्ट देखा जो एक फाइल डिस्क्रिप्टर "दो शॉर्ट्स और पॉइंटर" का सुझाव देता है, इसलिए मुझे अनुमानित ऊपरी बाउंड की गणना करने में सक्षम होना चाहिए।

उत्तर

32

POSIX आपको संसाधन सीमा RLIM_INFINITY पर setrlimit() का उपयोग करने की अनुमति देता है। इसका अर्थ यह है कि सिस्टम इस संसाधन सीमा को लागू नहीं करेगा। बेशक, आप अभी भी कार्यान्वयन (जैसे MAXINT) और किसी भी अन्य संसाधन सीमाओं (जैसे उपलब्ध स्मृति) द्वारा सीमित रहेंगे।

अद्यतन: RHEL 5 इस सीमा (/usr/include/linux/fs.h में NR_OPEN) के लिए 1048576 की एक अधिकतम मूल्य (2) है, और यहां तक ​​कि जड़ के लिए अनंत सहित किसी भी बड़े मूल्य को स्वीकार नहीं करेगा। तो आरएचईएल 5 पर आप इस मूल्य का उपयोग /etc/security/limits.conf में कर सकते हैं और यह उतना ही करीब है जितना आप अनंत तक पहुंचने जा रहे हैं।

बहुत पहले a Linux kernel patch लागू किया गया था ताकि इस सीमा को अनंत तक सेट किया जा सके, हालांकि it has since been reverted as a result of unintended consequences

+6

कुछ भी 2015 के रूप में हाल ही में बदल गया है? – CMCDragonkai

+1

संभावित रूप से उपयोगी: उबंटू 14.04 में यह/^/सुरक्षा/सीमा.conf' में 2^20 सीमाएं भी हैं। इससे पहले कि कुछ भी सीमा को डिफ़ॉल्ट 2^10 पर रीसेट कर देगा – Bacon

0

लाइन

<domain> - 

सबसे सामान्य स्थिति में, उपयोगकर्ता नाम के साथ <domain> की जगह की कोशिश करो।

limits.conf man page कहते

- 
    for enforcing both soft and hard resource limits together. 

    Note, if you specify a type of '-' but neglect to supply the 
    item and value fields then the module will never enforce any 
    limits on the specified user/group etc. . 
संबंधित मुद्दे