क्या मैक ओएस एक्स / डार्विन के फाइल सिस्टम कैशिंग व्यवहार को प्रभावित कर सकता है?


2

मुझे निम्नलिखित समस्या है: जब मैं ऐसी प्रक्रियाओं को चलाता हूं जो बहुत अधिक मेमोरी का उपभोग करती हैं, तो मैक ओएस एक्स फाइलसिस्टम कैश के एक बड़े हिस्से को जारी करने से इनकार करता है:

गतिविधि की निगरानी

वास्तव में, ~ 30 जीबी की निष्क्रिय मेमोरी को जाने देने के बजाय, यह 45 जीबी स्वैप करना पसंद करता है (जो कि तस्वीर में कैद हुए समय पर बढ़ रहे थे)।

रनिंग purgeने उस मेमोरी के एक बड़े हिस्से को मुक्त कर दिया, जिसके कारण ~ 15 जीबी की मुफ्त मेमोरी और मैक ओएस एक्स ने आखिरकार मुझे उस बग से रोकना शुरू कर दिया, जो वास्तव में बेकार OOM डायलॉग है जो मुझे अपने GUI एप्लिकेशन में से एक को छोड़ने के लिए कहता है ...

बेकार OOM संवाद

क्या कोई तरीका है जब कर्नेल को फ़ाइल I / O कैशिंग करने के लिए कम जोर दिया जा सकता है?


यदि आपने एक पल के लिए नजरअंदाज कर दिया है कि निष्क्रिय मेमोरी को मुफ्त मेमोरी से अलग तरीके से वर्गीकृत किया गया था और उन दोनों को "पूल का उपयोग करने के लिए तैयार" में माना जाता है, तो क्या कुछ औसत दर्जे का है जिसे आप प्रोग्राम लोड समय, मॉलॉक फेलिंग, आदि जैसी समस्या के रूप में देख रहे हैं। ??? एक रिबूट आभासी मेमोरी टेबल को मिटा देता है और यदि आप रैम को आवंटित करने वाले प्रोग्राम खोलते हैं, तो वे तुरंत "निष्क्रिय" खा जाएंगे, इसलिए यह सुनिश्चित करना मेरे लिए एक गैर-समस्या की तरह दिखता है।
bmike

@bmike जैसा कि मैंने कहा ... मैक ओएस एक्स ने मुझे उस OOM डायलॉग (कृपया एप्लिकेशन को बंद करने का चयन करें ...) के साथ लगातार बग किया, यह भी सिस्टम आंशिक रूप से अनुत्तरदायी बन गया (जबकि सभी सीपीयू कोर का उपयोग नहीं किया गया था) और उस 45 जीबी स्वैप फ़ाइल डिस्क पर भी मुझे गुस्सा दिलाता है।
बारबज

OOM संवाद - शायद उस पर विस्तार करने से मदद मिल सकती है। मेरा अनुमान 45 G स्वैप के साथ है, आपको वास्तव में एक लीक कोड समस्या है और पेजिंग एल्गोरिथ्म समस्या नहीं है। यदि आप पेजिंग आवंटन प्रणाली को बदलते हैं, तो आप अभी भी किसी अन्य तरीके से टूट जाएंगे। बीमार इस सप्ताह के अंत में वीएम सिस्टम को हैक करने की आवश्यकता के बिना यह समझाने के लिए कि मैं इस पर हमला कैसे करूँगा, इस सप्ताह के अंत में प्रयास करने की कोशिश करें। मुझे याद आया कि मेरी पहली टिप्पणी पर समस्या कितनी गहरी थी। क्या आपने Apple के साथ बग दर्ज किया है यदि आप मांग पर ऐसा कर सकते हैं? sysdiagnoseइंजीनियरों को एक ट्यूनिंग वर्कअराउंड की सिफारिश करने की आवश्यकता है।
bmike

@bmike यह OOM संवाद है: photomics.org/IeWia1Ee_OOM.png - पाठ बहुत भ्रामक है, मुझे लगता है कि यह कहने का क्या मतलब है कि मैक ओएस एक्स अभी इससे ज्यादा स्वैप नहीं करेगा (अभी भी सैकड़ों थे) मेरे स्टार्टअप डिस्क पर जीबी मुफ्त)। पाठ सिर्फ एक और प्रमाण है कि मैक का उपयोग नंबर क्रंचर्स के रूप में नहीं किया जाता है, यह देखते हुए कि यह केवल मेरे कम-मेमोरी जीयूआई अनुप्रयोगों को सूचीबद्ध करता है जबकि मेरा विश्लेषण सॉफ्टवेयर सभी मेमोरी का उपयोग कर रहा है ...
barbaz

ओरेबीडीबी जैसे ओएस एक्स पर वर्षों से एंटरप्राइज़ सॉफ़्टवेयर चलाने और कर्नेल या मेमोरी के साथ शून्य मुद्दे होने के बावजूद, मैं देख सकता हूं कि अगर यह आपके सॉफ़्टवेयर के लिए काम नहीं करता है, तो आप परेशान होंगे और महसूस करेंगे कि यह अनफिट है। हालाँकि, यदि आप ध्यान से देखें, तो आपको अपने बूट वॉल्यूम फाइल सिस्टम पर जगह की आवश्यकता है। अगर यह मदद करता है तो मैं एक छोटे से उत्तर का काम करूँगा।
bmike

जवाबों:


1

आपके सिस्टम तक पहुँच के बिना या आपकी त्रुटि को पुन: उत्पन्न करने के लिए कदमों के बारे में बताना मुश्किल है, लेकिन मेरे अनुभव में, ओएस किसी भी अन्य UNIX की तरह प्रदर्शन कर रहा है जब स्वैप डिवाइस और रूट फाइल सिस्टम भर जाता है। संवाद से बचने का सबसे सरल तरीका यह सुनिश्चित करना है कि आपके पास एक और स्वैप फ़ाइल बनाने के लिए पर्याप्त खाली जगह है (वे 2 जीबी मैं माउंटेन लायन पर विश्वास करते हैं)।

ज्यादातर लोग 25% (या अधिक) मुक्त स्थान पसंद करते हैं, क्योंकि ओएस मक्खी पर गर्म फ़ाइलों और डीफ़्रैग्मेंट का अनुकूलन करता है और ये स्व-अक्षम तब होता है जब आईओ को मंथन से बचने के लिए खाली स्थान कम हो जाता है जब लिखने के लिए जगह नहीं होती है या बहुत सारे मुफ्त होते हैं तेज फ़ाइल एक्सेस के लिए चुनने के लिए ड्राइव पर स्थान।


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

मैंने किसी को भी पेजिंग एल्गोरिदम के साथ खिलवाड़ करने के बारे में नहीं सुना है, लेकिन Apple ने OS के उस हिस्से को खुला रखा है, इसलिए जो कोई भी परवाह करता है वह कोड स्तर में बदलाव कर सकता है और उसके साथ चल सकता है।

मैं अगले सबसे बड़े साइड स्टोरेज ड्राइव को खरीदने के साथ शुरू करूँगा और अपने स्पेस उपयोग की निगरानी करूँगा ताकि आप अंगूठे के स्टार्टर नियम के रूप में 10 जीबी से कम खाली न हो सकें। यदि आप गंभीर काम कर रहे हैं, तो आप यह सुनिश्चित करने के लिए ड्राइव स्पेस में अधिक निवेश कर सकते हैं कि आप रन आउट न हों।


जैसा कि मैंने कहा ... स्टार्टअप डिस्क पर सैकड़ों जीबी मुक्त स्थान उपलब्ध था। स्वैपिंग केवल 50 जीबी पर रुकी। हालाँकि, मैं और भी अधिक समाधान की अदला-बदली पर विचार नहीं करूँगा, मुझे उम्मीद है कि सिस्टम FS कैश को छोड़ देगा और प्रोग्राम मेमोरी के लिए इसका उपयोग शुरू कर देगा।
बरबज

हम्म - अजीब लगता है कि संदेश पॉप जाएगा। मैं मशीनों के साथ कहीं अधिक स्वैप था। क्या आपने इस पर Apple के साथ बग दर्ज किया है? यह एक विशिष्ट बिल्ड / विशिष्ट चिपसेट पर कुछ हो सकता है जो कोड में गलत है। मैं नहीं देखा था आप सवाल में था कितना मुक्त अंतरिक्ष - शायद मैं यह टिप्पणी धागे से याद किया ...
bmike
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.