top
मेमोरी साइज की रिपोर्ट करने के लिए बैच मोड में रनिंग समय-समय पर यह देखने के लिए किया जा सकता है कि मेमोरी का उपयोग कौन कर रहा है जब चीजें दक्षिण में जाती हैं। sar
बैच मोड में रनिंग को मेमोरी उपयोग और संबंधित I / O पर कुछ अच्छे डायग्नोस्टिक्स देने चाहिए। munin
सिस्टम की निगरानी के लिए रनिंग आपको अच्छी जानकारी के साथ एक ग्राफ देना चाहिए कि किस मेमोरी का उपयोग किया जा रहा है। इससे बहुत मदद मिल सकती है।
प्रोग्राम के अधिकतम कोर आकार को सीमित करने के लिए आप limit.conf का उपयोग कर सकते हैं। उचित रूप से सेट, यह किसी भी प्रोग्राम को मारना चाहिए जो मेमोरी लीक कर रहे हैं। यह pam_limits मॉड्यूल के साथ काम करता है। ulimits
कमांड के साथ सीमाएं भी निर्धारित की जा सकती हैं ।
आप कुछ प्रोग्राम चला रहे हैं जो बड़ी मात्रा में मेमोरी का उपयोग कर सकते हैं। कुछ चीजें जिन्हें आप देख सकते हैं उनमें शामिल हैं।
- खराब प्रोग्राम के तहत चलने वाले एप्लिकेशन
apache2
मेमोरी को लीक कर सकते हैं। ऐसा होने पर आपको मेमोरी साइज़ बढ़ जाना चाहिए। आप Apache2 को एक निश्चित संख्या में उपयोग के बाद MaxRequestsPerChild
100 या तो सेट करके बच्चों को रीसायकल करने के लिए ट्यून कर सकते हैं । यदि यह समस्या को हल करता है, तो आपको रिसाव को हल करने की आवश्यकता है। मैं इसे पहले देखूंगा।
- MySQL मेमोरी में डेटा लोड करने का प्रयास कर सकता है। यदि आपके पास मेमोरी में बहुत अधिक डेटा है तो यह कुछ थ्रशिंग का कारण बन सकता है, लेकिन उतना नाटकीय नहीं होना चाहिए जितना आप देख रहे हैं।
- यदि आपके पास एक बड़ा
tmpfs
फ़ाइल सिस्टम माउंट है, तो आप मेमोरी को लीक कर सकते हैं यदि उपयोग किए जाने पर फ़ाइलें हटा नहीं दी जाती हैं। बड़ी लंबी लाइव फाइलें भी एक समस्या हो सकती हैं।
- यदि समस्या दिन के लगभग एक ही समय में होती है, तो आपके पास एक निर्धारित कार्यक्रम हो सकता है जो मेमोरी लीक कर रहा है।
- यदि आपके पास एक प्रोग्राम है जो साझा मेमोरी को आवंटित करता है, लेकिन बाहर निकलने से पहले इसे जारी नहीं करता है, तो आपके पास अपेक्षाकृत अदृश्य मेमोरी लीक होगा। यदि साझा की गई मेमोरी मेमोरी में बंद है, तो यह स्वैपिंग को मजबूर कर सकती है। उपलब्ध साझा मेमोरी की मात्रा आम तौर पर अपेक्षाकृत सीमित होती है।
- Liquidsoap + icecast बंडल मेमोरी का उपयोग करने वाले बफरिंग मुद्दों में चल सकता है। मैंने इस संयोजन का उपयोग नहीं किया है, इसलिए मुझे यकीन नहीं है कि यह कैसे दिखाई देगा।
सामान्य मेमोरी उपयोग: फ्री मेमोरी ऐसी चीज नहीं है जिसे आप बहुत चाहते हैं। यदि आपका सिस्टम लंबे समय से है और बहुत सारी मुफ्त मेमोरी है तो कुछ गलत है। जब भी आप कोई फ़ाइल पढ़ते या लिखते हैं, तो ब्लॉक्स कैश कैश में चले जाएंगे। यह आपकी मुफ्त मेमोरी को कम करेगा, और एक अच्छी बात है। सिस्टम स्मृति के लिए कहीं और देखे बिना कुछ प्रोग्राम शुरू करने के लिए पर्याप्त खाली स्थान रखेगा। जैसे ही कई कार्यक्रम तेज़ी से चलते हैं, उनकी मेमोरी फ्री पूल में वापस आ जाएगी जब वे दौड़ना बंद कर देंगे।
जब आप किसी फ़ाइल को बफर कैश में पढ़ते हैं, तो कोई डिस्क एक्सेस की आवश्यकता नहीं होती है और बफर बफर से रीड को हल किया जाता है। राइट्स एक समान तंत्र का उपयोग करते हैं। यदि आपके सिस्टम को मेमोरी की आवश्यकता है, तो बफर कैश उन पहले स्थानों में से एक है जिसका उपयोग किया जाता है। अधिकांश बफ़र्स तुरंत जारी किए जा सकते हैं।
यदि आपके पास मेमोरी लीक है, तो आप मुफ्त मेमोरी देखेंगे और बफ़र्स दोनों सिकुड़ने लगते हैं। यह अभी भी एक गंभीर समस्या नहीं है, क्योंकि लीक की गई स्मृति को अंततः स्वैप स्थान पर ले जाना चाहिए। जब तक आप स्वैप स्थान नहीं भरते हैं, तब तक आपका सिस्टम ठीक चलता रहेगा, और शेष खाली स्थान को बिंदु कार्यक्रमों तक खींचना शुरू नहीं किया जा सकता है। यह विशिष्ट है कि थोड़ी मात्रा में स्वैप स्थान का उपयोग किया जा सकता है।