Managing Linux Kernel Parameters with sysctl
लिनक्स एक ओपन-सोर्स ऑपरेटिंग सिस्टम है जो अपने उपयोगकर्ताओं को कई प्रकार की सुविधाएँ और विकल्प प्रदान करता है। कर्नेल लिनक्स ऑपरेटिंग सिस्टम का मुख्य घटक है जो सिस्टम संसाधनों, हार्डवेयर और सॉफ्टवेयर के बीच संचार का प्रबंधन करता है और सिस्टम को अन्य आवश्यक सेवाएं प्रदान करता है। कर्नेल अत्यधिक अनुकूलन योग्य है, और उपयोगकर्ता सिस्टम के प्रदर्शन को अनुकूलित करने, सुरक्षा में सुधार करने और विशिष्ट आवश्यकताओं को पूरा करने के लिए विभिन्न मापदंडों को समायोजित कर सकते हैं।
लिनक्स में, sysctl कमांड का उपयोग कर्नेल मापदंडों को प्रबंधित करने के लिए किया जाता है। Sysctl सिस्टम रिबूट की आवश्यकता के बिना, उपयोगकर्ताओं को रनटाइम पर कर्नेल पैरामीटर को पढ़ने, संशोधित करने और सेट करने की अनुमति देता है। यह आलेख sysctl का अवलोकन प्रदान करेगा और लिनक्स कर्नेल मापदंडों को प्रबंधित करने के लिए इसका उपयोग कैसे करें।
Sysctl क्या हैं?
Sysctl एक कमांड-लाइन उपयोगिता है जो उपयोगकर्ताओं को रनटाइम पर कर्नेल पैरामीटर को क्वेरी और संशोधित करने में सक्षम बनाती है। Sysctl कमांड procfs फाइलसिस्टम का हिस्सा है, जो कर्नेल डेटा स्ट्रक्चर और कॉन्फ़िगरेशन जानकारी तक पहुंच प्रदान करता है।
Procfs फ़ाइल सिस्टम एक वर्चुअल फ़ाइल सिस्टम है जो एप्लिकेशन और उपयोगकर्ताओं को कर्नेल डेटा संरचनाओं और कॉन्फ़िगरेशन जानकारी तक पहुँचने के लिए एक तंत्र प्रदान करता है। procfs फ़ाइल सिस्टम / proc पर आरोहित है और प्रक्रिया की जानकारी, CPU और मेमोरी उपयोग, फ़ाइल सिस्टम आँकड़े, और बहुत कुछ सहित सिस्टम जानकारी की एक विस्तृत श्रृंखला तक पहुँच प्रदान करता है।
कर्नेल पैरामीटर / proc / sys निर्देशिका में संग्रहीत हैं। प्रत्येक पैरामीटर को फ़ाइल के रूप में दर्शाया जाता है, और फ़ाइल की सामग्री पैरामीटर के मान का प्रतिनिधित्व करती है। Sysctl कमांड इन फ़ाइलों की सामग्री को पढ़ने और संशोधित करने का एक तरीका प्रदान करता है।
Sysctl कमांड का सिंटैक्स इस प्रकार है:
sysctl [-n] [-e] [-q] [-w] [-p] [variable[=value]]
-n विकल्प निर्दिष्ट करता है कि sysctl को इसके मान को प्रदर्शित करते समय चर नाम को प्रिंट नहीं करना चाहिए।
मान सेट करते समय कोई त्रुटि होने पर -e विकल्प sysctl से बाहर निकलने का कारण बनता है।
-q विकल्प निर्दिष्ट करता है कि मान सेट करते समय sysctl को कोई आउटपुट प्रिंट नहीं करना चाहिए।
-w विकल्प sysctl को कर्नेल में निर्दिष्ट मान लिखने के लिए कहता है।
-p विकल्प sysctl को कॉन्फ़िगरेशन फ़ाइल पढ़ने और सेटिंग लागू करने का निर्देश देता है।
कर्नेल पैरामीटर प्रबंधित करने के लिए Sysctl का उपयोग करना
अब जब हम sysctl की मूल बातें समझ गए हैं, तो आइए देखते हैं कि कर्नेल मापदंडों को प्रबंधित करने के लिए इसका उपयोग कैसे करें। Sysctl का उपयोग करने के दो मुख्य तरीके हैं: कर्नेल पैरामीटर पढ़ना और कर्नेल पैरामीटर संशोधित करना।
कर्नेल पैरामीटर पढ़ना
कर्नेल पैरामीटर को पढ़ने के लिए, हम वेरिएबल नाम के साथ sysctl कमांड का उपयोग करते हैं। उदाहरण के लिए, सिस्टम द्वारा अनुमति दी जाने वाली अधिकतम खुली फ़ाइलों को पढ़ने के लिए, हम निम्नलिखित कमांड का उपयोग कर सकते हैं:
sysctl fs.file-max
आउटपुट पैरामीटर के वर्तमान मान को प्रदर्शित करेगा, जैसा कि नीचे दिखाया गया है:
fs.file-max = 2097152
इस स्थिति में, सिस्टम द्वारा अनुमत खुली फ़ाइलों की अधिकतम संख्या 2,097,152 पर सेट है।
कर्नेल पैरामीटर्स को संशोधित करना
कर्नेल पैरामीटर को संशोधित करने के लिए, हम चर नाम और नए मान के साथ sysctl कमांड का उपयोग करते हैं। उदाहरण के लिए, सिस्टम द्वारा अनुमत खुली फाइलों की अधिकतम संख्या बढ़ाने के लिए, हम निम्नलिखित कमांड का उपयोग कर सकते हैं:
sysctl -w fs.file-max=5000000
-w विकल्प sysctl को कर्नेल में नया मान लिखने के लिए कहता है। इस आदेश को चलाने के बाद, सिस्टम द्वारा अनुमत खुली फ़ाइलों की अधिकतम संख्या 5,000,000 पर सेट की जाएगी।
यह नोट करना महत्वपूर्ण है कि सभी कर्नेल पैरामीटरों को रनटाइम पर संशोधित नहीं किया जा सकता है। कुछ पैरामीटर केवल पढ़ने के लिए हैं और केवल सिस्टम कॉन्फ़िगरेशन फ़ाइलों को संपादित करके या कर्नेल को पुनर्निर्माण करके संशोधित किया जा सकता है।
यह सुनिश्चित करने के लिए कि कर्नेल पैरामीटर का नया मान रिबूट के बाद लागू होता है, हमें सिस्टम कॉन्फ़िगरेशन फ़ाइलों को संशोधित करने की आवश्यकता है। ये फ़ाइलें /etc/sysctl.d/ निर्देशिका में स्थित हैं और इनका एक .conf विस्तार है। प्रत्येक फ़ाइल में कर्नेल पैरामीटर और उनके मान का एक सेट होता है। कॉन्फ़िगरेशन फ़ाइल में कर्नेल पैरामीटर को संशोधित करने के लिए, हमें टेक्स्ट एडिटर का उपयोग करके फ़ाइल को खोलना होगा और पैरामीटर के मान को बदलना होगा।
उदाहरण के लिए, मान लें कि हम अपने सिस्टम पर अनुमत खुली फाइलों की अधिकतम संख्या को 10,000,000 तक बढ़ाना चाहते हैं। हम निम्नलिखित सामग्री के साथ /etc/sysctl.d/ निर्देशिका में 10-million-files.conf नामक एक नई कॉन्फ़िगरेशन फ़ाइल बना सकते हैं:
fs.file-max = 10000000
फ़ाइल बनाने के बाद, हमें नई सेटिंग लागू करने के लिए निम्न आदेश चलाने की आवश्यकता है:
sysctl –system
यह कमांड /etc/sysctl.d/ निर्देशिका में सभी विन्यास फाइलों को पढ़ता है और सिस्टम में सेटिंग्स को लागू करता है।
अभ्यास में sysctl के साथ कर्नेल पैरामीटर्स का प्रबंधन
अभ्यास में, sysctl के साथ कर्नेल पैरामीटर प्रबंधन में यह समझना शामिल है कि कौन से पैरामीटर को संशोधित करना है और उन्हें कैसे संशोधित करना है। यहां कुछ सामान्य परिदृश्य हैं जहां कर्नेल पैरामीटर प्रबंधित करने के लिए sysctl का उपयोग किया जाता है:
1. ट्यूनिंग नेटवर्क प्रदर्शन
लिनक्स सिस्टम के नेटवर्क प्रदर्शन को टीसीपी कंजेशन कंट्रोल एल्गोरिदम, टीसीपी बफर साइज और टीसीपी विंडो स्केलिंग जैसे कर्नेल मापदंडों को संशोधित करके बेहतर बनाया जा सकता है। उदाहरण के लिए, टीसीपी बफर आकार बढ़ाने के लिए, हम निम्नलिखित आदेश चला सकते हैं:
sysctl -w net.ipv4.tcp_wmem=”4096 16384 4194304″
यह आदेश क्रमशः न्यूनतम, डिफ़ॉल्ट और अधिकतम टीसीपी बफर आकार को 4 केबी, 16 केबी और 4 एमबी पर सेट करता है।
2. सिस्टम सुरक्षा में सुधार
कुछ सुविधाओं को अक्षम करके या सुरक्षा उपायों को सक्षम करके सिस्टम सुरक्षा में सुधार के लिए कर्नेल पैरामीटर का भी उपयोग किया जा सकता है। उदाहरण के लिए, उपयोगकर्ताओं को अन्य उपयोगकर्ताओं के स्वामित्व वाली प्रक्रियाओं को देखने से रोकने के लिए, हम निम्नलिखित कर्नेल पैरामीटर सेट कर सकते हैं:
sysctl -w kernel.pid_max=65536
यह आदेश प्रक्रिया आईडी का अधिकतम मान 65,536 पर सेट करता है, जो उपयोगकर्ताओं को अन्य उपयोगकर्ताओं की प्रक्रियाओं की प्रक्रिया आईडी का अनुमान लगाने से रोकता है।
3. सिस्टम संसाधन उपयोग का अनुकूलन
डिस्क I/O शेड्यूलर, वर्चुअल मेमोरी मैनेजमेंट और CPU शेड्यूलिंग जैसी विभिन्न सेटिंग्स को समायोजित करके कर्नेल पैरामीटर का उपयोग सिस्टम संसाधन उपयोग को अनुकूलित करने के लिए भी किया जा सकता है। उदाहरण के लिए, CPU अनुसूचक को समय सीमा अनुसूचक पर सेट करने के लिए, हम निम्नलिखित कमांड चला सकते हैं:
sysctl -w kernel.sched=deadline
यह आदेश CPU अनुसूचक को समय सीमा अनुसूचक पर सेट करता है, जो उनकी समय सीमा के आधार पर प्रक्रियाओं को प्राथमिकता देता है।
निष्कर्ष
Sysctl एक शक्तिशाली कमांड लाइन उपयोगिता है जो उपयोगकर्ताओं को लिनक्स में कर्नेल पैरामीटर प्रबंधित करने की अनुमति देती है। sysctl के साथ, उपयोक्ता रनटाइम पर कर्नेल पैरामीटर्स को पढ़ सकते हैं, संशोधित कर सकते हैं और सेट कर सकते हैं, बिना सिस्टम रीबूट की आवश्यकता के।
कर्नेल पैरामीटर का उपयोग सिस्टम प्रदर्शन में सुधार, सुरक्षा बढ़ाने और सिस्टम संसाधन उपयोग को अनुकूलित करने के लिए किया जा सकता है। लिनक्स सिस्टम प्रशासकों और उपयोगकर्ताओं के लिए कर्नेल मापदंडों को प्रबंधित करने के लिए sysctl का उपयोग कैसे करना है, यह समझना आवश्यक है जो विशिष्ट आवश्यकताओं को पूरा करने के लिए अपने सिस्टम को अनुकूलित करना चाहते हैं।