केवल हाइबरनेशन के लिए स्वैप का उपयोग करें


0

मेरा एक स्वैप विभाजन है /dev/sda1। यह 2GBआकार में है और मैं केवल हाइबरनेटिंग के लिए इसका उपयोग करना चाहता हूं। मेरे सिस्टम में 4GBRAM है। जब मैं RAM पर कम होता हूं तो कर्नेल स्वैप करना शुरू कर देता है और मैं एप्लिकेशन को मारने के लिए एक tty पर स्विच भी नहीं कर सकता। मैं केवल स्वैप को हाइबरनेट करने के लिए उपयोग करना चाहता हूं, ओओएम स्थिति पर नहीं। इसलिए मैं चाहता हूं कि ओओएम हत्यारा कुछ अनुप्रयोगों को मार डाले, न कि हर समय स्वैप करने के लिए। मैंने सेट किया है vm.swappiness=0लेकिन यह मदद नहीं करता है। कोई उपाय?


मेरे पास कोई हल नहीं है, लेकिन vm.swappiness = 0 सेटिंग पर टिप्पणी करना चाहता था। vm.swappiness = 0 का अर्थ है कि कर्नेल स्वैप करने के लिए शुरू होने से पहले जब तक प्रतीक्षा करेगा। यह स्वैपिंग को पूरी तरह से बंद नहीं करेगा।
मोगेट

मेरे पास यह कैसे संभव तरीका है - स्वैप को स्थिर रखें और जब मुझे हाइबरनेट करने की आवश्यकता हो तो इसे जल्दी से माउंट करें। सवाल यह है कि इसे केडीई हाइबरनेट बटन के साथ कैसे काम किया जाए।
नज़र 554

जब आप राम से बाहर निकलते हैं, तो अदला-बदली बंद करने से आपको होने वाली अंतर्निहित समस्या में मदद नहीं मिलेगी। कहा कि, स्वैपिंग के दौरान आपका सिस्टम अनुत्तरदायी हो सकता है और साथ ही हार्ड ड्राइव समस्या का संकेत दे सकता है। कुछ हार्डवेयर जाँच चलाने लायक हो सकता है।
जर्नीमैन गीक

जवाबों:


0

यहाँ कुछ चीजें हैं जो आप कोशिश कर सकते हैं, हालांकि समाधान सीधे नहीं हैं जो आपने पूछा था।

जैसा कि मैंने टिप्पणियों में कहा है, सेटिंग vm.swappiness=0केवल कर्नेल प्रतीक्षा को तब तक करेगी जब तक कि यह स्वैप का उपयोग करने से पहले कर सकता है, इसे पूरी तरह से बंद न करें। मेरे पास इसका कोई सबूत नहीं है, लेकिन मुझे लगता है कि सेटिंग करके vm.swappiness=0आप अपनी समस्या को और बदतर बना रहे हैं।

मेरा मानना ​​है कि यह मामला है कि जब कुछ ऐसा होता है जो कर्नेल को स्वैप करना शुरू करने के लिए मजबूर करता है, तो संभवत: यह वास्तव में तेजी से सब कुछ स्वैप करना होगा, गति के कारण कुछ ऐसा करने में असमर्थ है जो हार्ड ड्राइव पर काम करता है। यदि आप कर्नेल को स्वैप करने के लिए चुनते हैं, तो यह डेटा को स्वैप करना शुरू कर देगा जो पहले के समय में कम उपयोग किया जाता है, और रैम से स्वैप करने के लिए बहुत सारे डेटा को स्थानांतरित नहीं करना पड़ता है जब चीजें किसी न किसी तरह से मिलती हैं। सामान्य तौर पर यह कर्नेल दक्षता को बढ़ाएगा।

तुम भी एक स्क्रिप्ट का उपयोग करेगा जो कर सकता है swaponऔर swapoffया तो एक स्वैप विभाजन या जब हाइबरनेशन ट्रिगर इस विशेष कारण के लिए उत्पन्न स्वैप फ़ाइल को सक्रिय करें। अधिकांश विंडो प्रबंधकों को स्क्रिप्ट निष्पादित करने के लिए अनुकूलित किया जा सकता है जब इसका अलग-अलग हिस्सा सक्रिय होता है जैसे उदाहरण हाइबरनेशन बटन। यह कैसे करना है, यह निर्भर करता है कि आप किस विंडो मैनेजर का उपयोग करते हैं।

एक तीसरा विकल्प यह है कि स्वैप को हर समय सक्रिय रहने दिया जाए और इसके बजाय OOM प्रबंधक के सक्रिय होने और प्रक्रियाओं को मारना शुरू करने से पहले उपयोग की जाने वाली रैम की मात्रा को कम कर दें। यह करना संभव है, लेकिन मुझे नहीं पता कि यह कैसे करना है।

अंत में, यह देखते हुए कि इन दिनों कितनी रैम की लागत है, आपके कंप्यूटर में रैम की मात्रा बढ़ाना भी एक व्यवहार्य विकल्प है यदि आपने पहले से अधिकतम नहीं किया है।


0

मैंने रूट के crontab में निम्नलिखित जोड़कर वर्कअराउंड का उपयोग किया

*/5 * * * * /sbin/swapoff -a  && /sbin/swapon -a

यह सबसे अच्छा समाधान नहीं है, लेकिन न्यूनतम पर स्वैप का उपयोग करता है। यह मुझे सबसे अच्छा परिणाम देता है क्योंकि मैंने अन्य समाधानों का उपयोग करने की कोशिश की।

एक और तरीका यह हो सकता है कि सस्पेंड / वेकअप के लिए कस्टम स्क्रिप्ट का उपयोग किया जाए, लेकिन मैंने यह नहीं पाया कि इसे उबंटु के साथ कैसे काम किया जाए (वेक पर स्वैप, हाइबरनेट से पहले स्वैप)

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