यह Ubuntu रिलीज़ 12.04 (सटीक) 64-बिट कर्नेल लिनक्स 3.2.0-25-आभासी पर हो रहा है
मैं उपयोगकर्ता के लिए अनुमत खुली फ़ाइलों की संख्या बढ़ाने की कोशिश कर रहा हूं। यह मेरे ग्रहण जावा एप्लिकेशन के लिए है जहां 1024 की वर्तमान सीमा पर्याप्त नहीं है।
अब तक मैंने जिन पदों को पाया है, उसके अनुसार मुझे लाइनों में लगने में सक्षम होना चाहिए
/etc/security/limits.conf इस तरह:
soft nofile 4096
hard nofile 4096
सभी उपयोगकर्ताओं के लिए अनुमत खुली फ़ाइलों की संख्या बढ़ाने के लिए।
लेकिन यह मेरे लिए काम नहीं कर रहा है और मुझे लगता है कि समस्या उस फाइल से संबंधित नहीं है।
सभी उपयोगकर्ताओं के लिए, डिफ़ॉल्ट सीमा 1024 है, जो कि /etc/security/limits.conf में है की परवाह किए बिना (मैंने उस फ़ाइल को बदलने के बाद रिबूट किया)
$ ulimit -n
1024
अब, /etc/security/limits.conf में प्रविष्टियों के बावजूद मैं इसे नहीं बढ़ा सकता:
$ ulimit -n 2048
-बैश: ulimit: खुली हुई फाइलें: सीमा को संशोधित नहीं कर सकता: ऑपरेशन की अनुमति नहीं है अजीब हिस्सा यह है कि मैं सीमा को नीचे की ओर बदल सकता हूं , लेकिन इसे ऊपर की ओर नहीं बदल सकता - यहां तक कि एक संख्या पर वापस जाने के लिए जो मूल सीमा से नीचे है:
$ ulimit -n 800
$ ulimit -n
800
$ ulimit -n 900
-bash: ulimit: open files: cannot modify limit: Operation not permitted
जड़ के रूप में, मैं उस सीमा को बदल सकता हूं जो मैं चाहता हूं, ऊपर या नीचे। यह कथित रूप से सिस्टम-वाइड लिमिट के बारे में / proc / sys / fs / file-max पर ध्यान नहीं देता है
# cat /proc/sys/fs/file-max
188897
# ulimit -n 188898
# ulimit -n
188898
लेकिन यहां तक कि मुझे रूट के रूप में चलाने के लिए ग्रहण होता है, मेरा एप्लिकेशन अभी भी "बहुत सारे खुले फ़ाइल" अपवाद के कारण क्रैश हो जाता है!
अब तक, मुझे गैर-रूट उपयोगकर्ता के लिए खुली फ़ाइलों की सीमा बढ़ाने का कोई तरीका नहीं मिला है।
मुझे यह कैसे ठीक से करना चाहिए? मैं कई अन्य पदों पर देखा है, लेकिन कोई भाग्य!
/etc/security/limits.conf
, आपको नई अधिकतम सीमा का उपयोग करने से पहले लॉगआउट करना पड़ सकता है। मैंने यह किया था, औरulimit -Hs
अभी भी 1000 दिखा कर चकित हो गया था जब मैंने इसे 1000000 तक बढ़ा दिया था! फिर मैंने लॉग आउट किया और वापस अंदर आया और ulimit ने नई राशि दिखाई।