आउट ऑफ़ मेमोरी संदेश क्या है: बच्चे की बलि दें?


20

मेरा कंप्यूटर हाल ही में मेमोरी से बाहर चला गया (बड़े जीआईएस डेटासेट के साथ काम करते समय सॉफ्टवेयर संकलन का एक अप्रत्याशित परिणाम नहीं)। सिस्टम लॉग में यह OOM स्थिति से कैसे निपटा जाता है, निम्नलिखित पंक्ति है:

Out of memory: Kill process 7429 (java) score 259 or sacrifice child

वह किस or sacrifice childबारे में है? निश्चित रूप से यह चीजों को जारी रखने के लिए कुछ अंधेरे अनुष्ठान की ओर इशारा नहीं कर रहा है?

जवाबों:


8

स्रोत फ़ाइलों से मुझे oom_kill.c मिला , OOM किलर, इस तरह के संदेश को सिस्टम लॉग में लिखे जाने के बाद, पहचान की गई प्रक्रिया के बच्चों की जांच करता है और मूल्यांकन करता है कि क्या प्रक्रिया के स्थान पर उनमें से किसी एक को मारना संभव है।

यहाँ स्रोत फ़ाइल से यह बताते हुए एक टिप्पणी निकाली गई है:

/*
 * If any of p's children has a different mm and is eligible for kill,
 * the one with the highest oom_badness() score is sacrificed for its
 * parent.  This attempts to lose the minimal amount of work done while
 * still freeing memory.
 */

यह फ़ायरफ़ॉक्स (वेब ​​सामग्री) के लिए भी करता है।
neverMind9

2

यह नामांकित होने के लिए नामांकित प्रक्रिया की एक बच्चे की प्रक्रिया को मारने के बारे में KILLसंकेत भेजा जा रहा है ।


2
लेकिन इसका क्या मतलब है ? क्या ऐसी कोई विधि है जिसके द्वारा माता-पिता खुद को बचाने के लिए एक बच्चे का "बलिदान" कर सकते हैं?
थानाटोस

मेरा अनुमान, जो सिर्फ एक अनुमान है, यह है कि चूंकि सभी प्रक्रिया लिनक्स इनिट प्रक्रिया के वंशज हैं कि इस संदर्भ में माता-पिता एक लिनक्स प्रक्रिया है जहां बच्चे विभिन्न अनुप्रयोग हैं। इस मामले में, लिनक्स प्रक्रिया अपने बच्चों में से एक को मारकर खुद को बचा रही है।
सीमस

0

यह ऊम (मेमोरी से बाहर) हत्यारा है। जब आपका सिस्टम मेमोरी से बाहर निकलता है, तो लाइनक्स कर्नेल फ्री मेमोरी को प्रोसेस करता है। एक हेयुरिस्टिक यह निर्धारित करता है कि सिस्टम को नुकसान पहुँचाए बिना मेमोरी को मुक्त करने के लिए कौन सी प्रक्रिया सबसे अच्छा उम्मीदवार है (आमतौर पर, रूट स्वामित्व वाली प्रक्रियाएं उम्मीदवार नहीं हैं)।

अधिक जानकारी यहाँ: कैसे OOM हत्यारा पहले किस प्रक्रिया को मारने का फैसला करता है?


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