मैं शर्त लगाता हूं कि सिस्टम वास्तव में "फ्रीज" नहीं था (इस अर्थ में कि कर्नेल लटका दिया गया था), बल्कि केवल बहुत गैर जिम्मेदार था। संभावना है कि यह सिर्फ बहुत कठिन स्वैपिंग था, जिससे इंटरैक्टिव प्रदर्शन और सिस्टम थ्रूपुट पत्थर की तरह गिर गया।
आप अदला-बदली बंद कर सकते हैं, लेकिन यह सिर्फ OOM- मारे गए प्रक्रियाओं (और सभी मज़ेदार कारणों) के खराब प्रदर्शन से समस्या को बदल देता है, साथ ही कम उपलब्ध डिस्क कैश के कारण प्रदर्शन में कमी आई है।
वैकल्पिक रूप से, आप प्रति-प्रक्रिया संसाधन सीमा (आमतौर पर के रूप में rlimit
और / या के लिए संदर्भित ulimit
) का उपयोग कर सकते हैं एक एकल प्रक्रिया की संभावना को हटाने के लिए स्मृति की एक हास्यास्पद राशि ले रही है और स्वैपिंग का कारण बनती है, लेकिन यह आपको प्रक्रियाओं के साथ मनोरंजक क्षेत्र में धकेलता है जो मर जाते हैं असुविधाजनक क्षण क्योंकि वे चाहते थे कि प्रणाली उन्हें देने के लिए तैयार थी।
यदि आप जानते हैं कि आप कुछ ऐसा करने जा रहे हैं जिससे बड़े पैमाने पर मेमोरी उपयोग होने की संभावना है, तो आप संभवतः एक आवरण प्रोग्राम लिख सकते हैं जो एक किया mlockall()
और फिर आपके शेल को निष्पादित करेगा; वह इसे स्मृति में रखेगा, और आपके पास "एक उत्तरदायी कोर रखने के लिए" सबसे निकटतम चीज होगी, जो आपको प्राप्त होने की संभावना है (क्योंकि ऐसा नहीं है कि सीपीयू को अतिव्यापी किया जा रहा है जो कि समस्या है)।
व्यक्तिगत रूप से, मैं संसाधन नियंत्रण के "मूर्खतापूर्ण कार्य नहीं करता" विधि की सदस्यता लेता हूं। यदि आपको रूट मिल गया है, तो आप एक सिस्टम को सभी प्रकार के नुकसान कर सकते हैं, और ऐसा कुछ भी करना जो आपको पता नहीं है कि संभावित परिणाम एक जोखिम भरा व्यवसाय है।