OS X Yosemite - बहुत सारी फाइलें खुलती हैं


18

मैंने हाल ही में मावेरिक्स से योसेमाइट में अपग्रेड किया .... सिर दर्द

मुझे पूरा यकीन है कि मेरी समस्या w / फ़ाइलों की संख्या है जो मैं खोल सकता हूं - लेकिन मुझे यकीन नहीं है कि इसे कैसे हल किया जाए । मुझे पूरा यकीन है कि मैंने /etc/sysctl.confफ़ाइल और /etc/launchd.confफ़ाइल बनाने के बारे में हर लेख / टिप पढ़ा है

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

/etc/launchd.conf

limit maxfiles 16384 32768
limit maxproc 1000 2000

/etc/sysctl.conf

# Turn up maxproc
kern.maxproc=2048
# Turn up the maxproc per user
kern.maxprocperuid=512

मैंने अपने वर्तमान सत्र के लिए विश्व स्तर पर और स्थानीय स्तर पर - मेरे ब्यूनिट वैल्यू को बढ़ाने की कोशिश की है ... कोई बानो नहीं

अलिमित-ए

-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-v: address space (kbytes)          unlimited
-l: locked-in-memory size (kbytes)  unlimited
-u: processes                       709
-n: file descriptors                4096

ठीक है - यह वह जगह है जहां मेरा सिरदर्द शुरू में शुरू हुआ था ... मेरा डीबी (पेरकोना-सर्वर 5.6.21-69.0 होमब्रेव के माध्यम से स्थापित) ने घुट और मरना शुरू कर दिया, और मायस्कल-एरर में too many files open। इसे w / त्रुटि भरा गया ।

2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorder_products.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorders.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsdevices.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsracks.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/v_classunity_classlist.frm' (errno: 24 - Too many open files)
2014-10-21 15:20:48 5190 [ERROR] Error in accept: Too many open files

यह वह जगह है जहां मैंने शुरू में अपने अल्माइट, मैक्सफाइल्स, मैक्सप्रो, आदि के द्वारा "अप-इंग" द्वारा उस समस्या को हल करने की कोशिश की और शुरू किया।

अंततः - निराश होकर, मैं आगे बढ़ गया और बाद में उस मुद्दे पर वापस आ गया। तो फिर मैं कोशिश कर रहा था sudo gem install nokogiri और बार-बार विफल हो जाता था और इस एक ही त्रुटि को थूक देता था (बिल्डर के बारे में बहुत कुछ दोहराता था। जेबी मूल विस्तार का निर्माण करने में विफल रहा - इसके बाद बार-बार स्टैकट्रैक का एक गुच्छा लॉग्स देता है।

nokogiri स्थापित त्रुटियां nokogiri त्रुटियों को स्थापित करें

मैंने इस मुद्दे को हल करने के लिए विभिन्न तरीकों का एक गुच्छा / googled किया है (यानी: अतिरिक्त झंडे, आदि ..)। Whats अद्भुत - और जब मैंने यह सोचना शुरू किया कि यह मामला # फाइलों / प्रक्रियाओं के लिए खुला था, जब मैंने जाँच की थी कि जब topरत्न स्थापित हो रहा था .... तो मुझे यह देखकर बहुत आश्चर्य हुआ कि मुझे क्या मिला?

के दौरान शीर्ष gem install nokogiri सूद मणि स्थापित नोकगिरी

ऐसा लग रहा है कि मेरी प्रक्रिया में गति बनी हुई है, जो तब मेरी पिछली तस्वीर में इस वन लाइन के लिए समझ में आया (देखें "nokogiri इंस्टॉल चित्र")

sh: fork: Resource temporarily unavailable

इसलिए मैं विचारों के प्रति दयालु हूं, लेकिन मुझे वास्तव में यकीन नहीं है कि कैसे # फ़ाइलों का डिबग करें?

अपडेट करें

खैर, मैं nokogiri स्थापित करने में कामयाब रहा। दुर्भाग्य से, मुझे बिल्कुल यकीन नहीं है कि यह क्या तय किया है b / c मैंने कई चीजों की कोशिश की है। लेकिन मुझे लगता है कि इसे रूबी को पुनः स्थापित करना था। हालाँकि, मुझे अभी भी वही मुद्दा w / my DB मिल रहा है जिसके बारे में बहुत सारी फाइलों के खुलने की शिकायत है जब मैं किसी भी तरह के डेटाबेस का उपयोग करता हूं जो तुच्छ रूप से छोटा नहीं है।


हम्म। शायद इतना ज्यादा नहीं होना चाहिए? शायद उस मणि के देवता के साथ एक बग उठाने लायक भी।
slhck

जवाबों:


16

/etc/launchd.confबहुत सारे Google प्रश्नों और SO सुझावों को संशोधित करके मेरे लिए Yosemite (10.10) में काम नहीं किया गया। कई बदलाव / रिबूट / परीक्षण संयोजनों के बाद, अंत में काम करना क्या था, /etc/sysctl.confफ़ाइल को संशोधित करना (या यदि यह मौजूद नहीं है) बनाना ।

यह वही है जो मुझे काम करने के लिए करना था

kern.maxfiles=65536
kern.maxfilesperproc=65536

मुझे यकीन नहीं है कि अगर kern.maxfilesवहां रहने की जरूरत है, लेकिन जब मेरे पास यह वहां था तब भी मेरे पास एक ही मुद्दा था, जब मैंने kern.maxfilesperprocकाम करने के लिए सब कुछ जोड़ा ।


मैंने पाया कि इन चरों के प्रभावी होने के लिए एक पुनः आरंभ आवश्यक है (जैसा कि अपेक्षित है)। आप इस बात की पुष्टि कर सकते हैं कि क्या करने से मान बदल गए हैं sysctl -a | grep kern.maxfiles
ब्लेक फ्रेडरिक

8

Mac OS X Yosemite में सिस्टम-वाइड आधार पर खुली फ़ाइलों की सीमाओं को समायोजित करने के लिए, आपको दो कॉन्फ़िगरेशन फ़ाइलों को बनाना होगा। पहली एक संपत्ति सूची (उर्फ प्लिस्ट) फ़ाइल /Library/LaunchDaemons/limit.maxfiles.plistहै जिसमें निम्न XML कॉन्फ़िगरेशन शामिल है:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxfiles</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxfiles</string>
          <string>65536</string>
          <string>65536</string>
        </array>
       <key>RunAtLoad</key>
        <true/>
      <key>ServiceIPC</key>
        <false/>
    </dict>
  </plist>

यह खुली हुई फ़ाइलों की सीमा को 65536 पर सेट करेगा। दूसरी प्लिस्ट विन्यास फाइल को /Library/LaunchDaemons/limit.maxproc.plistनिम्नलिखित सामग्रियों के साथ संग्रहित किया जाना चाहिए :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxproc</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>2048</string>
          <string>2048</string>
        </array>
      <key>RunAtLoad</key>
        <true />
      <key>ServiceIPC</key>
        <false />
    </dict>
  </plist>

दोनों plist फ़ाइलों के स्वामित्व root:wheelऔर अनुमतियाँ होनी चाहिए -rw-r--r--। यह अनुमतियाँ डिफ़ॉल्ट रूप से होनी चाहिए, लेकिन आप यह सुनिश्चित कर सकते हैं कि वे चल रहे हैं sudo chmod 644 <filename>। जबकि ऊपर बताए गए चरण सिस्टम-वाइड खुली फ़ाइल सीमाओं को पुनः आरंभ करने के लिए सही तरीके से सेट करेंगे, आप उन्हें मैन्युअल रूप से चलाकर लागू कर सकते हैं launchctl limit

सिस्टम के स्तर पर इन सीमाओं को निर्धारित करने के अतिरिक्त, हम साथ ही द्वारा सत्र स्तर पर स्थापित करने के लिए अपने को निम्नलिखित लाइनों जोड़कर की सलाह देते हैं bashrc, bashprofileया अनुरूप फ़ाइल:

ulimit -n 65536
ulimit -u 2048

प्लिस्ट फ़ाइलों की तरह, आपके bashrc या इसी तरह की फ़ाइल की -rw-r--r--अनुमति होनी चाहिए । इस बिंदु पर, आप अपने कंप्यूटर को पुनरारंभ कर सकते हैं और अपने टर्मिनल में ulimit -n दर्ज कर सकते हैं। यदि आपका सिस्टम सही तरीके से कॉन्फ़िगर किया गया है, तो आपको देखना चाहिए कि अधिकतम 55536 पर सेट किया गया है।

यहां से: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/


1
"लॉन्च की गई सीमा सीमाएं अधिकतम असीमित हैं; प्रक्षेपण सीमा की अधिकतम सीमाएँ" रिपोर्ट करती है कि 2015-09-30 पर मेरे योसेमाइट 10.10.5 पर अधिकतम 10240 हैं, और उनके साथ प्रयोग करना यह दर्शाता है कि यदि आप एक बड़ी स्पष्ट संख्या का उपयोग करते हैं, तो यह होगा अवहेलना करना।
डेव एक्स

5

योसेमाइट पर चूक 12K और 10K लगती है:

$ sysctl -a | grep kern.maxfiles
kern.maxfiles: 12288
kern.maxfilesperproc: 10240

केवल सेटिंग kern.maxfilesमें /etc/sysctl.confलगता है कि मेरी समस्याओं को हल कर दिया है। /etc/sysctl.confफ़ाइल:

kern.maxfiles=24576

सियरा के लिए सटीक समान मूल्य
डेविन जी रोड

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