मैं "ulimit -u" (अधिकतम उपयोगकर्ता प्रक्रियाओं) को कैसे बढ़ाऊँ?


6

मैं (उदाहरण के लिए) के माध्यम से सामान्य ulimits के सभी को बदल सकते हैं ulimit -n 8192और launchctl limit maxfiles 8192 8192। किसी भी तरह, यह -uउपयोगकर्ता प्रक्रियाओं की अधिकतम संख्या के लिए काम नहीं करता है:

~$ sudo launchctl limit maxproc 8192 8192
~$ sudo launchctl limit maxproc
    maxproc     2048           2048
-- in a new terminal:
~$ ulimit -u
1064

मुझे हर बार एक "कांटा विफल" मिलता है, और जब "मार" शुरू नहीं हो सकता है तो प्रक्रियाओं का एक गुच्छा मारना काफी कष्टप्रद होता है :) (यानी मैं आमतौर पर मशीन को रीबूट करने का सहारा लेता हूं)।

उपयोगकर्ता प्रक्रियाओं की अधिकतम संख्या को बदलने का सही तरीका क्या है?

जवाबों:


5

http://blog.ghostinthemachines.com/2010/01/19/mac-os-x-fork-resource-temporately-unavailable/ इस मुद्दे पर बड़ी विस्तार से बात करता है।

जब आप ऐसा करते हैं sudo launchctl limit maxproc, तो आप सिस्टम-व्यापी लॉन्च सीमा को देख रहे हैं या बदल रहे हैं।

जब आप ऐसा करते हैं launchctl limit maxproc, तो आप अपने उपयोगकर्ता के लिए लॉन्च सीमाएं देख रहे हैं या बदल रहे हैं।

एक बात का ध्यान रखें:

रूट उपयोगकर्ता रिबूट के बिना, सिस्टम-वाइड लॉन्च की हार्ड सीमा बढ़ा सकता है। हालाँकि, आप एक रिबूट (भले ही रूट उपयोगकर्ता के रूप में ऐसा करने की कोशिश कर रहे हों) के बिना उपयोगकर्ता के लॉन्च की हार्ड सीमा को नहीं बदल सकते।

मूल रूप से, हार्ड लिमिट (दाएं हाथ का कॉलम) जब आप शुरू में करते हैं launchctl limit maxproc, तो वह सीमा होती है जिसे आप ulimit -uरिबूट किए बिना उपयोग कर सकते हैं । लॉग आउट और बैक में काम नहीं करेगा। यहां तक ​​कि अगर आप द्वारा प्रदर्शित व्हाट्सएप को बदलते हैं launchctl limit maxproc, तो प्रारंभिक कठिन सीमा बनी रहती है। और के बीच के संबंध के बारे में अधिक जानकारी के लिए यह उत्तर देखें । उस सीमा को बढ़ाने के लिए, आपको करना होगाulimitlaunchctl limit

  • /etc/sysctl.confकर्नेल द्वारा समर्थित अधिकतम प्रक्रियाओं को बढ़ाने के लिए संपादित करें / बनाएं

    kern.maxproc=2500
    kern.maxprocperuid=2500
  • /etc/launchd.confबूट समय पर सिस्टम-वाइड लॉन्च की कठिन सीमा को बढ़ाने के लिए संपादित करें / बनाएं

    limit maxproc 2500 2500
  • रिबूट

यह भी ध्यान दें कि 2500 अधिकतम सीमा लगती है kern.maxprocजिसे सेट किया जा सकता है। मैं रिबूट होते ही इस बारे में एक प्रश्न पूछूंगा और एक और क्रोम टैब खोलने के लिए पर्याप्त स्वतंत्र प्रक्रियाएं होगी।


2
नोट: launchd.confविधि अब Mavericks और अन्य नए वितरण में काम नहीं करता है
kenorb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.