स्थायी रूप से ulimit मान कैसे सेट करें?


19

डेबियन व्हीज़ी पर, ulimit -aदेता है:

open files                      (-n) 1024

मैं इसे /etc/security/limits.conf में जोड़ता हूं

*                hard    nofile          64000

फिर रिबूट।

और ulimit -aअभी भी अधिकतम 1024 की खुली फाइलें देता है। कोई भी इस पर कुछ प्रकाश डाल सकता है?


क्या यह संभवतः एक वर्चुअल होस्ट है?
डेनिस नोल्टे

नहीं, यह है कि यह एक MongoDB सर्वर है
गहन चिकित्सा कक्ष

जवाबों:


15

विकल्प एक: आपने सॉफ्टलिमिट उच्च aswell को सेट नहीं किया है।

संभावित समाधान:

in /etc/security/limits.conf जोड़ें

* soft nofile 2048

के साथ परीक्षण

ulimit -n 2048 

विकल्प दो: आप उपयोगकर्ता के रूप में और कुछ "कॉन्फिगर" फ़ाइल (प्रोफ़ाइल, bashrc, कुछ इस तरह से) में लॉग इन होते हैं। सॉफ्ट लिमिट कम मूल्य पर सेट की जाती है।

अपने आदि फ़ोल्डर और / या घर फ़ोल्डर में ulimit के लिए संभावित समाधान fe grep।

चेतावनी: आपके पास वहां मौजूद फाइलों / निर्देशिकाओं की मात्रा के आधार पर आप केवल विशिष्ट निर्देशिकाओं / फाइलों पर विचार कर सकते हैं

पीएस: यहाँ बहुत सारे अनजाने प्रश्न हैं जिन्हें आप पढ़ना चाहते हैं।

विशेष रूप से हार्ड बनाम सॉफ्ट लिमिट

अन्य संभावित समाधानों के लिए यहां पढ़ें जो बहुत अधिक विस्तार से खुले हैं


असल में, मैं केवल हार्ड लिमिट को 64000 पर सेट करने की कोशिश कर रहा था। इसलिए सॉफ्ट लिमिट अभी भी 1024 पर थी। अब मैंने 64000 + हार्ड = 72000 पर सॉफ्ट लिमिट सेट करने की कोशिश की। लेकिन यह काम नहीं किया। मैंने "* - nofile 64000" भी आज़माया और मुझे भी यही परिणाम मिला।
इकु

"बहुत सारी खुली हुई फाइलें" पढ़ने के बाद, मुझे लगा कि एक कर्नेल सेटिंग सीमा से आगे निकल जाएगी। लेकिन सेटिंग्स: लेकिन "fs.file-max = 4933738"
Icu

@ आईसीसी इस एक से जवाब देने की कोशिश करें: serverfault.com/questions/93234/… आपके शेल से संबंधित हो सकता है
डेनिस नोल्टे

मैंने /etc/pam.d/other और common-session में 'session आवश्यक pam_limits.so' जोड़ा है, लेकिन यह मदद नहीं करता है ... एक विकल्प के रूप में, मैंने अपने init स्क्रिप्ट में 'ulimit -n' जोड़ा और यह काम करता है लेकिन मुझे आश्चर्य है कि मुझे अपने शेल में सही मान क्यों नहीं मिल रहे हैं।
इकु जू

20

डेबियन में एक बग है। इसे बढ़ाने के लिए ulimitआपको इसे /etc/pam.d/common-sessionफ़ाइल में जोड़ना होगा :

session required pam_limits.so

और /etc/security/limits.confजोड़ में:

*               soft    nofile          65535
*               hard    nofile          65535

फिर सिस्टम को रिबूट करें।


1
मुझे /etc/pam.d/common-sessionफ़ाइल में कोई बदलाव करने की कोई आवश्यकता नहीं है । यह limits.confफ़ाइल में अन्य दो पंक्तियों को जोड़कर काम किया है :-)
फ्रांसेस्को कसुला

आपको रिबूट करने की आवश्यकता नहीं होनी चाहिए।
डेविड गुडविन

यह क्रूर है। डेबियन 7 पर अब, और यह काम नहीं कर रहा है। निश्चित नहीं है कि क्या करना है :( - मैं एक नया प्रश्न खोल सकता हूं
NiCk Newman

12
बूम। *वाइल्डकार्ड काम नहीं करता है root। मैंने rootइसके बजाय जोड़ा *, और यह काम कर रहा है। धन्यवाद!
नीक न्यूमैन

@FrancescoCasula - डेबियन का कौन सा संस्करण था? बस यह पता लगाने की कोशिश कर रहा है कि क्या यह वास्तव में एक बग है, और यदि यह अभी भी मौजूद है ...
UpTheCreek

0

डेबियन 10 पर अपाचे के मेरे मामले में उपरोक्त ने मदद नहीं की हालांकि यह काम किया:

echo "APACHE_ULIMIT_MAX_FILES='ulimit -n 16384'" >> /etc/apache2/envvars
service apache2 restart

मैंने इसके साथ जाँच की:

cat /proc/$pid/limits

..जहां $pidअपाचे प्रक्रियाओं में से एक की प्रक्रिया आईडी है।

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