Ubuntu 18.04 पर अधिकतम खुली फ़ाइलों की सीमा कैसे बढ़ाएं?


16

मैंने चलाया है ulimit -n 65536, निम्न पंक्तियों को इसमें जोड़ा गया है /etc/security/limits.conf:

*    soft nofile 65536
*    hard nofile 65536
alix soft nofile 65536
alix hard nofile 65536
root soft nofile 65536
root hard nofile 65536

और session required pam_limits.soदोनों को जोड़ा :

  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

और fs.file-max = 65536को /etc/sysctl.d/60-file-max.conf

फिर भी, ulimit -nअपने सत्र को फिर से शुरू करने और चलाने के बाद , मुझे केवल 4096 (पहले 1024) मिला था।

मुझे किसकी याद आ रही है?

जवाबों:


12

मैनुअल से:

 -n     The maximum number of open file descriptors (most
        systems do not allow this value to be set)

systemd इसके लिए एक विकल्प है:

$ more /etc/systemd/system.conf | grep NOFILE
#DefaultLimitNOFILE=

लेकिन यह भी केवल ग्राफिकल यूजर सेटिंग्स के लिए है। निकालें #और आप इसे 65536 पर सेट कर सकते हैं।

डैनियल फर्नांडीज से टिप्पणी :

DefaultLimitNOFILE=65536 

में भी जरूरत पड़ सकती है

/etc/systemd/user.conf 

1
उल्लेख करना भूल गया, मैंने भी ऐसा किया।
एलिक्स एक्सल

1
@AlixAxel: इस जवाब ने मेरे लिए काम किया, इसके अलावा * - nofile 16384(मैं केवल 16384 प्रयास कर रहा था) /etc/security/limits.conf
डग स्माइथिज

65k एक धारणा है और यह उम्मीद की जाएगी कि जो अनुमति दी गई है उसके ऊपरी हिस्से में कठिन कोडित सीमाएं हैं। आप डग के संकेत के रूप में कम शुरू करना चाहते हो सकता है;)
Rinzwind

आपका क्या मतलब है "लेकिन यह भी केवल ग्राफिकल यूजर सेटिंग्स के लिए है"?
पापन

1
नोट सेटिंग की DefaultLimitNOFILE=65536भी आवश्यकता हो सकती है/etc/systemd/user.conf
डैनियल फर्नांडीज

2

Ubuntu 18.04 कदम से कदम

आशा है कि यह सब मदद करता है, काफी लंबा है लेकिन यह काम करता है (प्रमाण के साथ)

उबंटू 18.04 पर MongoDb को स्थापित करते हुए मैं इस धागे के पार आया

https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/

जैसा कि आप देख सकते हैं कि यह काफी पुराना है लेकिन यह मेरे लिए काम करता है।

मैंने जो किया था यह रहा।

  1. MongoDb अनुशंसित सेटिंग्स ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )

    • -f (फ़ाइल आकार): असीमित
    • -t (सीपीयू समय): असीमित
    • -v (आभासी मेमोरी): असीमित [1]
    • -l (लॉक-इन-मेमोरी आकार): असीमित
    • -एन (खुली फाइलें): 64000
    • -m (मेमोरी साइज़): असीमित [1] [२]
    • -यू (प्रक्रिया / सूत्र): 64000
  2. मेरी वर्तमान सीमाओं की जाँच करें

ubuntu @ isdb-stage: ~ $ ulimit -a
कोर फ़ाइल का आकार (ब्लॉक -c) 0
डेटा seg आकार (kbytes; -d) असीमित
समयबद्धन प्राथमिकता (-ई) ०
फ़ाइल का आकार (ब्लॉक, -f) असीमित
लंबित संकेत (-आई) 7873
अधिकतम बंद मेमोरी (kbytes; -एल) 16384
अधिकतम स्मृति आकार (kbytes; -m) असीमित
खुली फाइलें (-n) 1024
पाइप का आकार (512 बाइट्स, -प) 8
POSIX संदेश कतार (बाइट्स, -q) 819200
वास्तविक समय प्राथमिकता (-आर) ०
स्टैक आकार (kbytes; -s) 8192
सीपीयू समय (सेकंड, -t) असीमित
अधिकतम उपयोगकर्ता प्रक्रिया (-यू) 7873
आभासी स्मृति (kbytes; -v) असीमित
फ़ाइल ताले (-x) असीमित
  1. इस बात पर ध्यान दें कि क्या बदलने की आवश्यकता है

    • लॉक-इन-मेमोरी आकार , असीमित पर सेट होने की आवश्यकता है।
    • खुली हुई फाइलें , 64000 पर सेट होनी चाहिए
    • प्रक्रियाओं / धागे * , 64000 पर सेट होने की आवश्यकता है
  2. इन सीमाओं को बदलने के बारे में ओबंटु क्या कहता है?

$ आदमी की सीमा ।conf

नाम
   limit.conf - pam_limits मॉड्यूल के लिए कॉन्फ़िगरेशन फ़ाइल

विवरण
   Pam_limits.so मॉड्यूल उपयोगकर्ता लॉगिन सत्रों के लिए एक साथ लॉगिन सत्रों की सीमा, अच्छी प्राथमिकता और संख्या लागू करता है। कॉन्फ़िगरेशन फ़ाइल सिंटैक्स का यह विवरण इस पर लागू होता है

       /etc/security/limits.conf फ़ाइल और * .conf फ़ाइलें में 
       /etc/security/limits.d निर्देशिका।
  1. काफी स्पष्ट लगता है, /etc/security/limits.conf फ़ाइल संपादित करें। ठीक है यह पता लगाने दो ...।

यहाँ उस फ़ाइल की शुरुआत है, और यह भी देखें कि निश्चित रूप से निर्देश हैं, याद रखें कि यह अच्छे लोगों द्वारा लिखा गया खुला स्रोत है! :)

    vi /etc/security/limits.conf

    #etc/security/limits.conf 
    # प्रत्येक पंक्ति प्रपत्र में एक उपयोगकर्ता के लिए एक सीमा का वर्णन करती है:                                                                   
    #                                                                                
    #कहाँ पे:                                                               
    # हो सकता है:
    # - एक उपयोगकर्ता नाम

(यदि आप अधिक जानकारी चाहते हैं तो फ़ाइल को स्वयं देखें)
  1. अंत में परिवर्तन करें। चूंकि MongoDb mongodb समूह और उपयोगकर्ता के रूप में चलता है, इसलिए यह एक अच्छा विचार होगा कि उपयोगकर्ता केवल सीमाएँ ही बढ़ाएँ। मैंने यहां और वहां इस्तेमाल होने वाले '*' को देखा है, जो मेरे लिए एक सुरक्षा जोखिम है। यह इन सीमाओं को सर्वर पर सभी और विविध बनाता है, जिसका उपयोग आपके सर्वर को अधिकतम करने के लिए किया जा सकता है। तो उन्हें केवल मोंगोडब उपयोगकर्ता के लिए बनाने देता है।

यहाँ मेरे परिवर्तन हैं: -

मंगोल नरम नरम असीमित
mongodb हार्ड मेमॉक असीमित
मोंगोडब सॉफ्ट नॉयल 64000
मैंगोडब हार्ड नॉयल 64000
मैंगोडब सॉफ्ट नप्रो 64000
मैंगोडब हार्ड nproc 64000
  1. अंत में, अंत में यह याद रखें कि आदमी सीमा में है ।conf प्रविष्टि।

    limit.conf - pam_limits मॉड्यूल के लिए कॉन्फ़िगरेशन फ़ाइल

    बेहतर सुनिश्चित करें कि pam_limits मॉड्यूल लोड किया गया है इसलिए यह सभी सामान काम करता है। ऐसा करने के लिए आप /etc/pam.d/common-session को संपादित करते हैं। बेशक यह मैन पेज में भी है।

सुडो vi /etc/pam.d/common-session

# यह सुनिश्चित करने के लिए pam_limits.so लोड किया गया है।
सत्र आवश्यक pam_limits.so

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

$ अलिमित-ए

कोर फ़ाइल का आकार (ब्लॉक -c) 0
डेटा seg आकार (kbytes; -d) असीमित
समयबद्धन प्राथमिकता (-ई) ०
फ़ाइल का आकार (ब्लॉक, -f) असीमित
लंबित संकेत (-आई) 7873
अधिकतम बंद मेमोरी (kbytes; -l) असीमित
अधिकतम स्मृति आकार (kbytes; -m) असीमित
खुली फाइलें (-n) 64000
पाइप का आकार (512 बाइट्स, -प) 8
POSIX संदेश कतार (बाइट्स, -q) 819200
वास्तविक समय प्राथमिकता (-आर) ०
स्टैक आकार (kbytes; -s) 8192
सीपीयू समय (सेकंड, -t) असीमित
अधिकतम उपयोगकर्ता प्रक्रिया (-यू) 64000
आभासी स्मृति (kbytes; -v) असीमित
फ़ाइल ताले (-x) असीमित

जैसा कि आप देख सकते हैं, बहुत ही हँसी-ख़ुशी से सब कुछ उस सीमा तक चला गया जो हम चाहते थे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.