लिनक्स में स्वैप उपयोग कैसे प्रबंधित करें
आपने अपने लिनक्स सिस्टम में सिस्टम लॅग, भारी स्वैप उपयोग, या कम मेमोरी मुद्दों का अनुभव किया हो सकता है। एक सामान्य सलाह है कि "स्वैपनेस मूल्य कम करें", स्वैप उपयोग को कम करें। लेकिन swappiness क्या है? और क्या यह वास्तव में अच्छा है?
नोट : हम स्वैप विभाजन के बारे में विस्तार से नहीं जाएंगे। लिनक्स पर स्वैप विभाजन के बारे में आपको जो कुछ जानने की आवश्यकता है, उसके बारे में आप हमारे लेख में इसके बारे में सब कुछ पढ़ सकते हैं।
Swappiness
यूनिक्स जैसी प्रणालियों में स्वैपनेस नामक एक मूल्य है जो यह निर्धारित करता है कि स्मृति में पृष्ठों को कैसे प्रबंधित किया जाएगा। अधिकांश प्रणालियों पर इसका डिफ़ॉल्ट मान "60" है, लेकिन इसे 0 और 100 के बीच कुछ भी सेट किया जा सकता है। यदि स्मृति कम हो जाती है, तो कर्नेल या तो कुछ फाइल कैश को प्रक्रियाओं के लिए अधिक रैम रखने के लिए बेदखल कर देगा, या यह कुछ प्रक्रिया स्वैप करेगा रैम से डिस्क के पेज।
60 का डिफ़ॉल्ट रूप से स्वैपिंग का उपयोग कम किया जाएगा, और आई / ओ कैश रैम को फिर से चलाने के लिए अधिक संभावना से मुक्त हो जाएगा। कैशों को बेदखल करना "सस्ता" (कम संसाधन गहन) माना जाता है, जबकि पृष्ठों को स्वैप करने में डिस्क पढ़ने और लिखते हैं, जिससे उन्हें "महंगा" बना दिया जाता है। '60 'के मूल्य पर, स्वैप उपयोग कैश पुन: उपयोग से थोड़ा कम होगा। अगर स्वैपनेस का मूल्य 100 तक बढ़ जाता है, तो स्वैपिंग और फ़ाइल कैश बेदखल का उपयोग बराबर वजन के साथ किया जाएगा। इसका मतलब डिफ़ॉल्ट रूप से अधिक स्वैपिंग और तेज़ I / O है। "10" जैसे निचले मानों का अर्थ है कि स्वैपिंग का उपयोग बहुत कम किया जाएगा, और I / O कैश को प्रक्रियाओं के पक्ष में बहुत जल्द बेदखल किया जा सकता है। यह अंतःक्रियाशीलता बढ़ा सकता है लेकिन I / O गति को भी चोट पहुंचा सकता है।
स्वभाव कम करना
आप अक्सर "10." के आसपास स्वैपनेस को कम करने के लिए वेबसाइटों और मंचों पर सलाह देखेंगे। यह कम स्वैप का उपयोग करके चीजों को गति देना और भौतिक RAM में अधिक प्रक्रियाओं को रखना है। यह तर्क कुछ हद तक सीधा हो सकता है और शायद "एक आकार सभी समाधान फिट बैठता हो।"
निम्नलिखित परिदृश्यों में स्वभाव के मूल्य को कम करना अच्छा हो सकता है:
- डेटाबेस सिस्टम के लिए, या यदि आप बहुत से डेटाबेस गहन अनुप्रयोगों का उपयोग करते हैं : डेटाबेस आमतौर पर ओएस की तुलना में फ़ाइल कैशिंग तरीका को बेहतर तरीके से संभालते हैं। यदि आप स्वैपनेस को कम करते हैं, तो आप ओएस की फ़ाइल कैशिंग को सीमित कर देंगे, इस प्रकार डेटाबेस को अपने कैश को संभालने का मौका दे सकते हैं।
- अंतःक्रियाशीलता के लिए : यदि आप बहुत अधिक मल्टीटास्क करते हैं लेकिन कुछ फ़ाइलों को संभालते हैं या बड़े दस्तावेज़ नहीं खोलते हैं, तो यह बेहतर हो सकता है कि आपका सिस्टम कितना आसान महसूस करेगा। डिस्क पर कम प्रक्रियाएं लिखी जाएंगी, और चूंकि रैम एक्सेस बहुत तेज है, तो आपका कंप्यूटर तेज़ी से महसूस कर सकता है। आपको यह भी ध्यान में रखना चाहिए कि इससे I / O प्रदर्शन कम हो सकता है। यदि आपके पास धीमी डिस्क है या I / O गहन कुछ भी है, तो यह प्रदर्शन को भी नुकसान पहुंचा सकता है।
- प्लेसबो के लिए : बहुत से लोग मानते हैं कि कम स्वैपनेस सिस्टम को तेज करेगा। गंभीरता से, आप सोचते हैं कि आपका सिस्टम तेज़ है, इसका प्रभाव भी तेज होने का प्रभाव हो सकता है।
ध्यान रखें कि स्वभाव को कम करने के परिणामस्वरूप स्मृति को मुक्त करने के लिए सिस्टम द्वारा क्रैश और प्रक्रियाओं को यादृच्छिक रूप से मार दिया जा सकता है। यदि आपके सिस्टम को सुचारू रूप से चलाने के लिए पर्याप्त रैम उपलब्ध है तो स्वभाव कम हो जाएगा। लेकिन आपको "10" से ऊपर मान रखना चाहिए, क्योंकि कुछ स्वैप उपयोग करना अच्छा है।
बढ़ती स्वैपनेस
तेजी से बढ़ने से आई / ओ तेजी से बढ़ने का सामान्य लाभ हो सकता है। हालांकि अक्सर सलाह नहीं दी जाती है, बढ़ती जा रही है स्वस्थता आसान हो सकती है अगर:
- आप कुछ I / O गहन परिचालन करते हैं, और आपके पास धीमे, पुराने HDD हैं । उदाहरण के लिए: बैकअप या बैच संपादन छवियां निष्पादित I / O गहन हो सकती हैं (एक उल्लेखनीय अपवाद डेटाबेस है जो स्वाभाविक रूप से I / O गहन है लेकिन उपर्युक्त के रूप में कम स्वैपनेस मूल्य से लाभ प्राप्त कर सकता है।)।
- आपके पास कम स्मृति है लेकिन अपेक्षाकृत तेज डिस्क है। इस असंभव परिदृश्य में, स्वैपनेस का एक उच्च मूल्य स्मृति को अधिक कुशलता से संभालने में मदद कर सकता है (हालांकि इसे बहुत अधिक सेट करने से फिर से प्रदर्शन को नुकसान पहुंचा सकता है।)।
स्वैपनेस का प्रबंधन कैसे करें
सबसे पहले, आपको इस बात पर विचार करना चाहिए कि आपको इस मूल्य को बिल्कुल छूने की ज़रूरत है या नहीं। क्या आप प्रदर्शन के मुद्दों का सामना कर रहे हैं? और सबसे महत्वपूर्ण बात यह है कि आपने अभी तक अन्य सिस्टम tweaks की कोशिश की है? यदि नहीं, तो शायद कहीं और देखना सबसे अच्छा है। लेकिन अगर आपके मन में एक विशिष्ट परिदृश्य है, तो आप जारी रखना चाहेंगे।
अगला, आपका स्वैप उपयोग कितना भारी है? आप इसे अपनी पसंद के किसी भी प्रदर्शन निगरानी उपकरण या free
कमांड के साथ पा सकते हैं। free -m
आपको मेगाबाइट्स में मेमोरी उपयोग का एक स्नैपशॉट देगा। निरंतर निगरानी के लिए, आप watch.
का उपयोग करना चाह सकते हैं watch.
घड़ी-1 मुक्त-एम
यह हर सेकेंड में free -m
कमांड चलाएगा और जब तक आप "Ctrl + C." दबाएंगे तब तक इसका आउटपुट प्रिंट नहीं करेंगे।
जैसा कि आप ऊपर देखते हैं, इस लेख पर लिखा गया सिस्टम द्वारा बहुत कम स्वैप का उपयोग किया जा रहा है।
अब यदि आप अनुभव स्वैपिंग करते हैं, तो आप रुचि ले सकते हैं कि इसमें से कितना सक्रिय है। कमांड vmstat
आपको बताएगा कि आपको अपने सिस्टम के वर्चुअल मेमोरी उपयोग (स्वैप और भौतिक राम एक साथ) के बारे में जानने की ज़रूरत है।
vmstat 1
आपको swap
कॉलम की जांच करने की आवश्यकता है जहां si
अर्थ है "स्वैप इन", और इसका मतलब है "स्वैप आउट"। यदि संख्याएं अधिक हैं, तो इसका मतलब है कि बहुत सारी स्वैपिंग गतिविधि जो कम मेमोरी समस्याओं का संकेतक है। यदि आप स्वैप उपयोग को free
देखते free
लेकिन थोड़ा सक्रिय स्वैपिंग करते हैं, तो स्वैच्छिकता झुकाव हो सकती है।
डिस्क I / O, लोड औसत इत्यादि जैसे अन्य प्रदर्शन मानक स्थापित करना भी एक अच्छा विचार है, इसलिए जब आप अपने नए स्वैपनेस मानों का परीक्षण करते हैं, तो आपके पास तुलना करने के लिए कुछ है।
एक अलग स्वैपनेस मान का परीक्षण करने के लिए, आप इसे अस्थायी रूप से sysctl
कमांड के साथ सेट कर सकते हैं। इसके लिए कोई रिबूटिंग की आवश्यकता नहीं है, और प्रभाव तत्काल है। वास्तव में, रिबूटिंग डिफ़ॉल्ट मान को पुनर्स्थापित करेगा, इसलिए आप प्रयोग करने के लिए काफी सुरक्षित हैं:
sudo sysctl vm.swappiness = 10
बेशक, आप "10" ("0" और "100" के बीच) के बजाय कोई मान डाल सकते हैं।
एक बार जब आपको अपना पसंदीदा मूल्य मिल जाए, तो आप "/etc/sysctl.conf" संपादित करके सिस्टम कॉन्फ़िगरेशन को स्थायी रूप से बदल सकते हैं।
सुडो नैनो /etc/sysctl.conf
और लाइनों को जोड़ना
# स्वैपनेस वैल्यू vm.swappiness = 10 सेट करें
इस फ़ाइल के अंत में, निश्चित रूप से एक बार फिर से आपकी वरीयता के लिए निर्धारित मूल्य के साथ।
निष्कर्ष
"10" को स्वैपनेस को कम करने के लिए अक्सर एक-आकार-फिट-सभी समाधान के रूप में सलाह दी जाती है, लेकिन तकनीक का वास्तविक उपयोग उससे थोड़ा अधिक जटिल हो सकता है। बेंचमार्क स्थापित करके, अपने सिस्टम को जानकर, आप इसका उपयोग कैसे करते हैं, और इससे आपको क्या चाहिए, आप अपने स्वैप उपयोग को ट्यून कर सकते हैं और कुछ प्रदर्शन (या तो इंटरएक्टिविटी या आई / ओ) वृद्धि प्राप्त कर सकते हैं।