डिफ़ॉल्ट स्वपन 60 क्यों है? अगर मैं अपने डेस्कटॉप पीसी के लिए स्वैग्मेंट वैल्यू कम कर लूं तो इसका क्या असर होगा?


16

मैं विभिन्न मंचों में स्वप्नदोष के बारे में पढ़ रहा था और मैंने कुछ वीडियो देखे। कई लोगों ने कहा कि यह डेस्कटॉप उपयोगकर्ताओं के लिए 60 से नीचे की स्वैग्मेंट वैल्यू (जो कि डिफ़ॉल्ट है) को कम करने के लिए एक अच्छी बात है। कुछ ने कहा कि 60 सर्वरों के लिए अच्छा है। वास्तव में मेरे लिए इसे कम करना क्यों बेहतर होगा और सर्वर के लिए 60 अच्छा क्यों है? मैंने एक उत्तर खोजने की कोशिश की (मैंने उदाहरण के लिए यहां देखा ) लेकिन समझ नहीं पाया। ... कृपया आसान शब्दों का उपयोग करें: डी


प्रश्न संपादित किया। क्या यह अब अच्छा है?
मीना माइकल

जवाबों:


22

आपका आधार गलत है। सर्वर की स्वैल्प वैल्यू के लिए कोई 'अच्छा' नहीं है।

स्वेपिंग स्वैपिंग की मात्रा है जो की जाती है, विशेष रूप से आप कितनी आक्रामक रूप से स्वैप करते हैं। मेरे सर्वर के लिए स्वप्नदोष शून्य के करीब है, क्योंकि मैं यह सुनिश्चित करता हूं कि उनके पास हर चीज के लिए पर्याप्त स्मृति है। सर्वर के मूल्य के लिए कोई 'सर्वश्रेष्ठ' नहीं है। वहाँ 60 है, जो डिफ़ॉल्ट है, और फिर "आपका मूल्य" है जो उपयोग और उपलब्ध स्मृति पर निर्भर करता है।

यदि आपके पास ऐसे सर्वर हैं जो कभी-कभी मेमोरी के LOADS का उपयोग करते हैं, तो आप उन्हें डिफ़ॉल्ट रूप से अधिक कर सकते हैं, लेकिन मैं कहूंगा कि कुछ (डेटाबेस सर्वर?) उन्हें घर के कंप्यूटर की तुलना में कम रखना चाह सकते हैं।


ठीक है: DI इस unix.stackexchange.com/questions/88693/… का अनुसरण कर रहा था । दूसरा उत्तर (वर्तमान में 2 अपवोट के साथ) ने कहा कि 60 सर्वरों के लिए सबसे उपयुक्त हो सकता है। ... और मुझे यह सीधा करने दो। यदि मुझे कई छोटी प्रक्रियाओं को करने की आवश्यकता है, तो मुझे उच्च स्वैच्छिकता सेट करनी चाहिए, अगर मुझे बड़ी मेमोरी और निम्न की आवश्यकता होती है?
मीना माइकल

(और मेरे कंप्यूटर के चश्मे के आधार पर) मेरे पास एक कोर 2 जोड़ी है 2.9 के बारे में। इंटेल एकीकृत ग्राफिक्स के साथ जिस तरह से
मीना माइकल

1
कहना असंभव है। बहुत सी चीजों पर निर्भर करता है, जैसा कि उस उत्तर में भी कहा गया है -> कुछ डेटाबेस अपनी कैशिंग कर सकते हैं, लेकिन कुछ नहीं कर सकते हैं। यह कार्यक्रमों और आपके हार्डवेयर पर निर्भर करता है। एक डिफ़ॉल्ट और सबसे अच्छी बात है कि आप यह परीक्षण कर सकते हैं कि आपका सिस्टम किस स्थिति में काम करता है। जैसा कि कहा गया है, मैंने अपने सिस्टम में पर्याप्त मेम जोड़े हैं, और मुझे पता है कि उन्हें क्या आवश्यकता है, इसलिए मुझे लगभग 0. पर स्वप्नदोष हो सकता है, लेकिन स्वस्थ सिस्टम पर कुछ स्वैपिंग एक अच्छी बात हो सकती है। यहाँ सभी सलाह के लिए कोई आसान 'भगवान' नहीं है, सबसे अच्छा-अपवोट उत्तर पढ़ें। इसके अलावा: यह कहते हैं कि "हो सकता है", उस "2" जवाब में "नहीं है"
Nanne

(और आपके चश्मे पर: सबसे महत्वपूर्ण बात अगर आप अपने और आपके पास मौजूद मेमोरी के बारे में बात कर रहे हैं, लेकिन इसे यहां जोड़ने की कोई खास जरूरत नहीं है: हम सभी प्रकार की बारीकियों के बारे में दिनों तक बात कर सकते हैं, सबसे अच्छी बात यह है कि आप इसे पढ़ें। आपके द्वारा दिए गए उस यूनिक्स लिंक पर उच्चतम उत्तर, और परीक्षण के साथ जारी रखें कि यह आपके वातावरण में कैसे काम करता है।) '
नन्ने

अच्छा है कि जब मैंने कहा कि मैं समझ नहीं पाया कि मैंने क्या पढ़ा है। मैं ज्ञान (और यहां तक ​​कि ईमानदार XD होने के लिए भाषा) पर काफी कमजोर हूं ... इसलिए मुझे बस कोशिश करते रहने की जरूरत है! ठीक है धन्यवाद: D
मीना माइकल

8

स्वप्नदोष मूल्य को इस तरह से बढ़ाया जाता है जो लोगों को भ्रमित करता है। वे देखते हैं कि इसमें 0-100 की सीमा है, इसलिए वे प्रतिशत के बारे में सोचते हैं, जब वास्तव में प्रभावी न्यूनतम 50 के आसपास होता है।

लगभग ६०% का मतलब है कि जब तक हम लगभग usage०% मेमोरी के उपयोग तक नहीं पहुँचते, तब तक २०% कैश और ऐसे ही निकल जाएगा। 50 का अर्थ है जब तक हम स्मृति से बाहर नहीं निकलते हैं तब तक प्रतीक्षा करें। निचले मूल्यों का मतलब समान है, लेकिन अन्य तरीकों से स्मृति को मुक्त करने की कोशिश में बढ़ती आक्रामकता के साथ।

इसका वर्णन http://lwn.net/Articles/83588/ पर बहुत अच्छी तरह से करें


उच्च मूल्यों का क्या मतलब है, उदाहरण के लिए 80 या 100?
jocull

5

जिस तरह से लिनक्स एक विशेष परिदृश्य में अदला-बदली करने के लिए लाभ / कमियों की गणना करता है, उसी तरह से स्वैगनेस सेटिंग एक ट्वीक है। एक उच्च स्वैपीनेस सिस्टम को स्वैप करने का कारण नहीं बनेगी जब इसकी आवश्यकता नहीं होती है, और एक कम स्वप्नदिली, यह प्रदान करते हुए कि आप पूरी तरह से स्वैपिंग को अक्षम नहीं करते हैं, यह आपके सिस्टम को स्वैप करने से नहीं रोकेगा जब इसे पूरी तरह से करना होगा।

60 या तो की डिफ़ॉल्ट स्वैगनेस आपके सिस्टम के अच्छे प्रदर्शन को सुनिश्चित करने के लिए एक बहुत अच्छा समझौता है, यह सुनिश्चित करने के लिए कि कैश मेमोरी को आवंटित करना मुश्किल नहीं है, जबकि अप्रयुक्त आवंटित प्रोग्राम मेमोरी है।

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

कृपया देखें कि मैंने एक बहुत ही समान प्रश्न का उत्तर दिया था:

/ubuntu//a/184221/54256

अंश:

ज्यादातर लोग 10-20 तक स्वपन को कम करने की सलाह क्यों देते हैं?

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

...

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

हालांकि यह एक निश्चित कटऑफ के अनुसार ऐसा नहीं करता है। यह ऐसा नहीं है कि आप आवंटन के एक निश्चित प्रतिशत तक पहुंच जाते हैं तो लिनक्स स्वैप करना शुरू कर देता है। यह एक बल्कि "फजी" एल्गोरिथ्म है। यह बहुत सी चीजों को ध्यान में रखता है, जिसे "स्मृति आवंटन के लिए कितना दबाव है" द्वारा सबसे अच्छा वर्णन किया जा सकता है। यदि नई मेमोरी आवंटित करने के लिए बहुत अधिक "दबाव" है, तो इससे संभावना बढ़ जाएगी कि कुछ को अधिक कमरे बनाने के लिए स्वैप किया जाएगा। यदि कम "दबाव" है तो यह इन अवसरों को कम करेगा।

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

जब व्यवस्था चरमरा जाती है और ज़ोर से स्वैप होती है तो क्या हो रहा है?

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

जब डिस्क को स्वैप करने के लिए क्या चुनना है, तो सिस्टम उस मेमोरी को चुनने की कोशिश करता है जो वास्तव में उपयोग नहीं किया जा रहा है - से पढ़ा या लिखा गया है। यह गणना के लिए एक बहुत ही सरल एल्गोरिथ्म है जो ज्यादातर समय अच्छी तरह से चुनता है।

...

लेकिन स्वैप मेरे सिस्टम को कैसे गति दे सकता है? धीमी गति से चीजों को स्वैप नहीं करता है?

रैम से स्वैप करने के लिए डेटा ट्रांसफर करने का कार्य एक धीमा ऑपरेशन है, लेकिन यह केवल तभी लिया जाता है जब कर्नेल को पूरा यकीन है कि यह समग्र लाभ होगा। उदाहरण के लिए, यदि आपकी एप्लिकेशन मेमोरी इस बिंदु पर पहुंच गई है कि आपके पास लगभग कोई कैश नहीं बचा है और I / O इस वजह से बहुत अक्षम है, तो आप वास्तव में कुछ मेमोरी को मुक्त करके अपने सिस्टम से बहुत अधिक गति प्राप्त कर सकते हैं, यहां तक ​​कि डेटा को स्वैप करने के प्रारंभिक खर्च के बाद इसे मुक्त करने के लिए।

पूरी पोस्ट पढ़ने के लिए बेझिझक /ubuntu//a/184221/54256


0

इन सभी उत्तरों में स्वपन पूरी तरह से विरोधाभासी है।

स्वपनदोष का वास्तविक कार्य लेख में वर्णित है: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory/management/

एंड्रयू मॉर्टन के बयान से अस्पष्टता का अंकन किया गया है: https://lwn.net/Articles/83593/

मैं अपनी उंगलियों को अपने कानों में बांधने वाला हूं और "ला ला ला" गाता हूं जब तक कि लोग मुझे यह नहीं कहते कि "मैं शून्य पर स्वप्नदोष सेट करता हूं और यह वह नहीं करता जो मैं करना चाहता था"।

आशा है कि यह उपयोगी है


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