मैं मेमोरी कैश को कैसे साफ़ या अक्षम कर सकता हूँ?


49

सिस्टम शुरू होने के बाद, कुछ ही मिनटों में मेरी मेमोरी कैश भर जाती है और यह स्वैप का उपयोग करना शुरू कर देता है। यहाँ / proc / meminfo का स्क्रीनशॉट है।

याद

हालांकि, अगर मैं इस प्रक्रिया को अक्षम कर सकता हूं / उसके बाद एक बार कैश को साफ कर सकता हूं, मुझे लगता है कि मेरा सिस्टम कुछ हद तक गति देगा। अगर मैं यहां गलत हूं तो मुझे सुधारो।

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

ब्लीचबिट मेमोरी

यहां पहले से ही एक समान प्रश्न पोस्ट किया गया था: मैं प्रीफैच कैश को कैसे निष्क्रिय कर सकता हूं? , लेकिन यह उबंटू सर्वर के बारे में था, और उत्तर में मैनुअल सेटिंग्स आदि भी शामिल थे।

इसलिए, मैं यह जानना चाहता हूं कि क्या उबंटू 12.04 के लिए मेमोरी कैश को अक्षम / सक्षम करने के लिए कुछ सॉफ़्टवेयर है।


क्या आप सुनिश्चित हैं कि यह आपकी समस्या का समाधान करेगा? मेमोरी बिना कारण के नहीं भरती है। मुझे यह भी समस्या थी कि मेरी स्मृति भर रही थी, और इसे वापस ट्रेस किया tracker-miner। जब मैंने सभी ट्रैकर पैकेजों की स्थापना रद्द कर दी, तो मेरी समस्या दूर हो गई। मेरे पास 4GB मेमोरी भी है, और 2GB का उपयोग चेस द्वारा किया जाता है, लेकिन मैं न तो किसी समस्या का सामना कर रहा हूं।
डेनियल कुल्मन

1
@danielkullmann: वह कैश्ड मैमोरी की बात कर रहे हैं, ऐप द्वारा इस्तेमाल की जाने वाली मेमोरी की नहीं ...
ish

@izx हाँ, मुझे पता है। यह सिर्फ यह हो सकता है कि वह गलत समस्या के समाधान की तलाश करे। कर्नेल काफी स्मार्ट है जो प्रोग्राम द्वारा आवश्यक होने पर मेमोरी को कैश से भरने के लिए नहीं है। इसलिए मुझे लगता है कि उनकी स्मृति की समस्याएं एक ऐसे कार्यक्रम से आती हैं जो बहुत अधिक स्मृति का उपयोग करता है।
daniel kullmann

@danielkullmann: मैं यह जानने के लिए उत्सुक हूं कि आपने इसे एक प्रक्रिया में कैसे वापस लाया, जो कि सभी मेमोरी को टटोल रहा है ... क्या इसके लिए कुछ टूल / कमांड है?
भारद्वाज श्रीगिरिजू

मैंने अभी htop कमांड का उपयोग किया है, और मेमोरी उपयोग द्वारा क्रमबद्ध किया है।
डेनियल कुल्मन

जवाबों:


58

नोट: लिनक्स आपकी रैम को "नहीं" खा रहा है! कृपया समझने के लिए नीचे गीरा के उत्कृष्ट उत्तर पर एक नज़र डालें ...

उपरोक्त नोट के बाद, यदि आप अभी भी "सफाई" महसूस करते हैं तो कैश मदद कर सकता है, तो आप निश्चित रूप से कोशिश कर सकते हैं: यह टर्मिनल से एक-लाइनर है:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

कैश को अक्षम करने का कोई आसान तरीका नहीं है , लेकिन आप इसे हर मिनट जितनी बार चाहें साफ कर सकते हैं।

  • इसे क्रोन-जॉब बनाओ
  • इस पंक्ति को नीचे की ओर दबाएं Alt-F2, टाइप करें gksudo gedit /etc/crontabऔर जोड़ें:

    */15 * * * * root sync && echo 3 > /proc/sys/vm/drop_caches

  • यह हर 15 मिनट में साफ करता है। आप 1 या 5 मिनट के लिए सेट कर सकते हैं यदि आप वास्तव में पहला पैरामीटर बदलकर *या */5इसके बजाय करना चाहते हैं*/15

कैश को छोड़कर REAL फ्री रैम को जानने के लिए एक लाइनर

गीरा का जवाब विवरण बताता है, लेकिन संक्षेप में, आपको मुफ्त मेगाबाइट की संख्या मिलती है:

free -m | sed -n -e '3p' | grep -Po "\d+$"

जो मेरे 2GB कमांड लाइन सर्वर पर एक अत्यंत स्वास्थ्य देता है 1835


3
Ergh! कैश को नॉक करना काफी बुरा है, लेकिन इसके लिए क्रोनजॉब बनाना? मेरा मतलब है, यह सवाल को "हल" करता है, इसलिए बोलने के लिए, लेकिन यह इसे कम दर्दनाक नहीं बनाता है।
रीड करें


@ मिक्स: हम्म ... तो यह है कि कैसे एक क्रोनजॉब बनाता है। अगर मैं समय-समय पर कैश गिराने जा रहा हूं, तो क्या इसका मतलब यह नहीं है कि मैं वास्तव में सिस्टम को धीमा कर रहा हूं? अगर ऐसा होता, तो मुझे लगता है कि आपका जवाब जिरह के जवाब से ज्यादा एक सैद्धांतिक जवाब की तरह लगता है। : p अच्छा जवाब BTW ...
भारद्वाज श्रीगिरिराजु

1
@ForbiddenOverseer: मैंने केवल वही डाला है क्योंकि आप कैश को "अक्षम" करना चाहते थे, और समय-समय पर इसे पूरा करना ही इसे पूरा करने का एकमात्र तरीका है। शीर्ष पर मेरा नोट (और जिरहा का लिंक) स्पष्ट रूप से बताता है कि कैश वास्तव में आपके सिस्टम को सबसे अधिक गति देता है, भले ही यह "अपनी रैम खा रहा हो" जैसा दिखता है --- इसलिए हाँ, आईएमओ आप अपने सिस्टम को धीमा कर रहे होंगे , लेकिन आप इसे आज़माना चाहते थे, इसलिए मैंने बस आपके सवाल का जवाब देने के बजाय बस आप को परेशान किया और आपको बताया कि यह एक बुरा विचार है और इसलिए आपको ऐसा नहीं करना चाहिए! मैंने आपको केवल प्रयोग करने की शक्ति दी है ...: D
ish

1
मैं एक VDS के रूप में Ubuntu Server 12.04 LTS का उपयोग कर रहा हूं। मैं इस उत्तर में प्रदान किए गए दृष्टिकोण की कोशिश कर रहा हूं, लेकिन मुझे लगातार मिल रहा है tee: /proc/sys/vm/drop_caches: Permission denied। कोई सुझाव?
ईमन्तस

44

मदद! लिनक्स मेरी राम खा गया!

www.linuxatemyram.com इसे खूबसूरती से अक्सर पूछे जाने वाले प्रश्नों के रूप में बताते हैं:

क्या चल रहा है?

लिनक्स डिस्क कैशिंग के लिए अप्रयुक्त मेमोरी को उधार ले रहा है। यह ऐसा लगता है जैसे आप स्मृति पर कम हैं, लेकिन आप नहीं हैं! सब कुछ ठीक है!

यह ऐसा क्यों कर रहा है?

डिस्क कैशिंग प्रणाली को बहुत तेज बनाता है! न्यूब्यूस को भ्रमित करने के अलावा कोई डाउनसाइड नहीं है। यह कभी भी, किसी भी तरह से मेमोरी को एप्लिकेशन से दूर नहीं ले जाता है!

यदि मैं अधिक एप्लिकेशन चलाना चाहता हूं तो क्या होगा?

यदि आपके एप्लिकेशन अधिक मेमोरी चाहते हैं, तो वे सिर्फ एक हिस्सा लेते हैं जो डिस्क कैश उधार लेती है। डिस्क कैश हमेशा तुरंत अनुप्रयोगों को वापस दिया जा सकता है! तुम राम पर कम नहीं हो!

मैं कैसे देखूं कि वास्तव में मेरे पास कितना मुक्त राम है?

यह देखने के लिए कि आपके एप्लिकेशन बिना स्वैप के कितना राम का उपयोग कर सकते हैं, मुफ्त-एम चलाएं और "उपलब्ध" कॉलम देखें:

$ मुक्त-एम
              कुल उपलब्ध मुफ्त साझा बफ़ / कैश उपलब्ध है
मेम: 1504 1491 13 0 855       792
स्वैप: २०४ 6 ६ २०४१
Mebibytes में यह आपका जवाब है।


स्रोत: जैसा कि उल्लेख किया गया है, उत्कृष्ट www.linuxatemyram.com - कृपया अधिक जानकारी के लिए देखें।


1
@ नागिरा: लिंक के लिए धन्यवाद ... यह बहुत जानकारीपूर्ण था और मुझे अंत में दिए गए प्रयोग पसंद आए !!
भारद्वाज श्रीगिरिराजु

@ मिक्स: tbh, मैं एक कठिन समय है जो स्वीकृत उत्तर तय कर रहा है। उल्लेख नहीं करने के लिए, यह लिंक वास्तव में हर दूसरे तरीके से जानकारीपूर्ण था ...;)
भारद्वाज श्रीगिरिराजु

@ForbiddenOverseer: विस्तृत उत्तर के लिए मेरे उत्तर में मेरी टिप्पणी देखें - मैंने आपको इसका लघु संस्करण दिया था कि आपको ऐसा क्यों नहीं करना चाहिए, लेकिन फिर आपने अपने प्रश्न का उत्तर दिया, जिससे आपको प्रयोग करने और अपने लिए प्रयास करने की शक्ति मिली। अगर आपको नहीं लगता कि कैश को साफ करना / छोड़ना मदद करता है, तो बस इसे और न करें :)
ish

@ मिज़, मुझे इस मामले के लिए ऐसा करना थोड़ा कठिन लगा। हालाँकि, आपने मामले पर एक उपयोगी पाठ लिखा है, इसलिए शायद आप अपने उत्तर में url जोड़ सकते हैं, और हम मेरा उत्तर हटा दें?
जिरह

कोई ज़रूरत नहीं है, एक उत्कृष्ट संसाधन में आपका लिंक; मैंने जवाब में कुछ हिस्सों को (रोपण के साथ) शामिल किया, ताकि यह अब पूरी तरह से वैध विकल्प हो (वास्तव में जनता द्वारा बेहतर जवाब!) महान काम, उत्थान - 5k में आपका स्वागत है!
ish

4

अपने वर्तमान मेमोरी उपयोग की जाँच करने के लिए

 watch -n 1 free -m

या

 watch -n 1 cat /proc/meminfo

स्पेस खाली करने के लिए

 sudo sysctl -w vm.drop_caches=3

नोट: यह क्रिया आपके सिस्टम को तेज़ नहीं करेगी और न ही इसकी स्थिरता और प्रदर्शन को प्रभावित करेगी, यह सिर्फ कैश कर्नेल द्वारा उपयोग की गई मेमोरी को कैश में साफ करेगी।

या

 sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

नोट: आप विशिष्ट समय अंतराल पर चलने के लिए ऊपर दिए गए आदेशों को शेड्यूल करने के लिए क्रोन जॉब्स का उपयोग कर सकते हैं।


1

जैसा कि हम देख सकते हैं कि कैशिंग समस्या नहीं है अगर यह स्वैपिंग का कारण बनता है, तो आप vm.swappiness value को प्रबंधित करने से क्या बचा सकते हैं । हो सकता है कि आप जो खोज रहे हैं: क्यों-स्वैग-से-इस्तेमाल किया जा रहा है, हालांकि-मैं-मैं-बहुत-से-मुक्त-राम

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