मैं सभी प्रक्रियाओं के लिए खुली फ़ाइलों की सीमा कैसे बढ़ा सकता हूं?


32

मैं ulimit का उपयोग कर सकता हूं लेकिन मुझे लगता है कि केवल मेरे शेल सत्र को प्रभावित करता है। मैं चाहता हूं कि सभी प्रक्रियाओं के लिए सीमा बढ़े। यह Red Hat पर है।


रेड हैट का कौन सा संस्करण, वैसे? RHEL5?

जवाबों:


26

जस्टिन जवाब आपको बताता है कि उपलब्ध खुली फ़ाइलों की संख्या को बढ़ाने के लिए कुल पूरी व्यवस्था करने के लिए। लेकिन मुझे लगता है कि आप विश्व स्तर पर प्रति-उपयोगकर्ता सीमा बढ़ाने के लिए कह रहे हैं। इसका उत्तर निम्नलिखित पंक्तियों को जोड़ना है /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(जहां * सभी उपयोगकर्ताओं का मतलब है।)

उस फ़ाइल में और उसके भीतर कुछ सारांश प्रलेखन है man limits.conf। यह pam_limits.soमॉड्यूल के माध्यम से कार्यान्वित किया जाता है जिसे कॉन्फ़िगर की गई विभिन्न सेवाओं के लिए कहा जाता है /etc/pam.d/

और, मुझे स्वीकार करना होगा, मुझे नहीं पता कि 1024 डिफ़ॉल्ट कहां से आता है। और मेरा विश्वास करो, मैंने देखा। मैंने pam_limits मॉड्यूल को कॉन्फ़िगर किए बिना भी कोशिश की, और यह अभी भी वहां है। यह कहीं न कहीं हार्ड-कोडेड होना चाहिए, लेकिन मुझे यकीन नहीं है कि कहाँ।


2
हम्म ... मैंने इसे ठीक से सेट किया। SSH से बाहर निकलें और वापस आएं और मेरी सॉफ्ट लिमिट अभी भी 1024 पर सेट है। क्या मुझे "सक्रिय" बनाने के लिए कुछ याद आ रहा है? धन्यवाद।
जोशुआ पिंटर

- @mattdm यह लायक उल्लेख नहीं है कि कुछ लिनक्स वितरण पर उल्लेख किया फ़ाइल के तहत किया जाएगा है: /etc/limits.conf
लड़का Avraham

13

लेख लिनक्स के अनुसार ओपन फाइल / फाइल डिस्क्रिप्टर्स (एफडी) की अधिकतम संख्या बढ़ाएं , आप एक प्रविष्टि को जोड़कर खुली फाइलों की सीमा बढ़ा सकते हैं /etc/sysctl.conf

एक विन्यास निर्देश इस प्रकार है:

fs.file-max = 100000

फिर फ़ाइल को सहेजें और बंद करें। उपयोगकर्ताओं को प्रभावी होने के लिए लॉग आउट करने और फिर से लॉग इन करने की आवश्यकता है या वे केवल निम्न कमांड टाइप कर सकते हैं:

# sysctl -p

आप अपनी सेटिंग्स को कमांड से भी सत्यापित कर सकते हैं:

# cat /proc/sys/fs/file-max

मुझे इस विशेष सेटिंग के लिए लॉग आउट करने और फिर से सिस्टम-वाइड करने की आवश्यकता के बारे में संदेह है। (जो sysctl में सब कुछ के लिए बहुत कुछ जाता है ...)
mattdm

13

लिनक्स में अधिकतम संख्या में उल्टी ओपन फ़ाइल बढ़ाएँ

1.Step: sysctl.conf इस लाइन को खोलें और जोड़ें fs.file-max = 65536

$ vi /etc/sysctl.conf

नई लाइन जोड़ें और

fs.file-max = 65536

सुरषित और बहार।

2.Step:

$ vi /etc/security/limits.conf

और उल्लेख के नीचे जोड़ें

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

अधिकतम खुली फ़ाइल को सहेजें और बाहर निकलें ulimit

# ulimit -a

....
open files                      (-n) 65535

6

लेकिन अगर आप किसी सेवा की अधिकतम फ़ाइलों को बढ़ाने की कोशिश कर रहे हैं , जैसे कि MariaDB या कुछ और ( सिस्टमड का उपयोग करके ) तो आपको सीधे फ़ाइल .service में ही करना होगा।

/lib/systemd/system/<servicename>.service

कुछ इस तरह होगा:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

पूरी तरह से उत्तर यहां है: CentOS 7 पर systemd द्वारा शुरू की गई प्रक्रियाओं के लिए बढ़ती nproc


इसे अपग्रेड करने की आवश्यकता है, क्योंकि systemdलिनक्स इकोसिस्टम में इसके चल रहे बदलावों के साथ-साथ इसकी निरंतरता बढ़ रही है। हालाँकि, मैं cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/पैकेज द्वारा प्रदान की गई सिस्टम-वाइड सेवा फ़ाइल के बजाय, उस फ़ाइल के उत्तर को संपादित करने और उसमें बदलाव करने का सुझाव दूंगा ।
ILMostro_7

3

suplement:

आपको अलग-अलग जगह कॉन्फ़िगर मिल सकते हैं: /etc/security/limits.d/*.conf

मुझे इसे संशोधित करना था। इसके बिना काम नहीं किया। प्रारूप के लिए ही हैlimits.conf


मुझे पूरी तरह से हमारे CentOS सर्वर पर सेटिंग के लिए इस फाइल को भी अपडेट करना था।
जॉन आइस्ब्रेनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.