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


65

मैंने कई साइट में देखा है जो बेहतर प्रदर्शन के लिए 10-20 तक स्वपन को कम करने की सलाह देते हैं।

यह मिथक है या नहीं? क्या यह एक सामान्य नियम है? मेरे पास 4 जीबी रैम और 128 जीबी एसएसडी वाला लैपटॉप मुश्किल है, आप मेरे स्वैग के लिए क्या मूल्य सुझाते हैं?

धन्यवाद।


5
जिन साइटों को आप सूचीबद्ध करते हैं, वे यह नहीं समझाते हैं कि वे डिफ़ॉल्ट को बदलने की सिफारिश क्यों कर रहे हैं। एक जटिल मुद्दे के बारे में इस मुश्किल विकल्प के लिए, यहां उत्तर बहुत बेहतर हैं।
nealmcb

जवाबों:


88

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

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

लिनक्स रैम का उपयोग कैसे करता है

कोई भी RAM जो अनुप्रयोगों द्वारा उपयोग नहीं की जा रही है, उन्हें "कैश" के रूप में उपयोग किया जा सकता है। कैश तेज, सुचारू रूप से चलने वाली प्रणाली के लिए महत्वपूर्ण है, दोनों को पढ़ता है और डिस्क पर लिखता है।

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

यदि अनुप्रयोग अपनी मेमोरी का उपयोग और भी अधिक बढ़ा देते हैं - यह मानते हुए कि आपके पास कोई स्वैप स्थान नहीं है - आपके पास न केवल कैश के लिए कोई स्थान होगा बल्कि आप अंततः मेमोरी से बाहर निकल जाएंगे और आपके सिस्टम को रनिंग प्रक्रियाओं को मारना होगा। हत्या की प्रक्रिया धीमी गति से भी बदतर है क्योंकि यह आपको एक अस्थिर, अप्रत्याशित प्रणाली देती है।

कैसे लिनक्स स्वैप का उपयोग करता है

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

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

आपके सिस्टम में एक "स्वैपीनेस" सेटिंग है, जो आपको इस "दबाव" की गणना करने के तरीके की गणना करने में मदद करती है। यह अक्सर "राम के प्रतिशत" के रूप में गलत तरीके से प्रस्तुत किया जाता है, लेकिन ऐसा नहीं है, यह सिर्फ एक मूल्य है जो सूत्र के हिस्से के रूप में उपयोग किया जाता है। लगभग ४० से ६० के मान अनुशंसित सेंस मान हैं, ६० आजकल डिफ़ॉल्ट हैं।

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

क्या हो रहा है जब सिस्टम बुरी तरह से घिर गया है और ज़ोर से स्वैप कर रहा है?

स्वैपिंग एक धीमा और महंगा ऑपरेशन है, इसलिए सिस्टम इसे टालता है जब तक कि यह गणना नहीं करता है कि कैश परफॉर्मेंस में ट्रेड-ऑफ इसे समग्र रूप से बनाएगा, या यदि हत्या प्रक्रियाओं से बचने के लिए यह आवश्यक है।

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

डेस्कटॉप सिस्टम के बारे में क्या? क्या उन्हें एक अलग दृष्टिकोण की आवश्यकता नहीं है?

एक डेस्कटॉप सिस्टम के उपयोगकर्ता वास्तव में उपयोगकर्ता द्वारा शुरू किए गए कार्यों के जवाब में "संवेदनशील महसूस करने के लिए" सिस्टम की अपेक्षा करते हैं, जैसे कि एक एप्लिकेशन खोलना, जो कि एक प्रकार की कार्रवाई है जो कभी-कभी आवश्यक मेमोरी बढ़ने के कारण स्वैप को ट्रिगर कर सकती है।

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

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

स्वैप को पूरी तरह से अक्षम करने से बचना चाहिए क्योंकि आप आउट-ऑफ-मेमोरी शर्तों के खिलाफ अतिरिक्त सुरक्षा खो देते हैं जो प्रक्रियाओं को क्रैश या मौत का कारण बन सकते हैं।

अब तक का सबसे प्रभावी उपाय अधिक रैम स्थापित करना है यदि आप इसे खरीद सकते हैं।

क्या किसी ऐसे सिस्टम पर स्वैप को अक्षम किया जा सकता है जिसमें बहुत सारी रैम हो?

यदि आपके पास अनुप्रयोगों की आवश्यकता की तुलना में कहीं अधिक रैम है, तो आपको शायद ही कभी स्वैप की आवश्यकता होगी। स्वैप अक्षम करने से संभवत: समय का अंतर नहीं पड़ेगा। लेकिन अगर आपके पास बहुत सारी रैम है, तो स्वैप को सक्षम करने से भी कोई जुर्माना नहीं होगा क्योंकि सिस्टम को स्वैप की आवश्यकता नहीं होती है जब उसे इसकी आवश्यकता नहीं होती है।

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

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

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

एक बार डेटा स्वैप में है, यह फिर से कब निकलता है?

मेमोरी का कोई भी हिस्सा स्वैप से वापस आ जाएगा जैसे ही इसका उपयोग किया जाता है - से पढ़ा या लिखा जाता है। हालांकि, आम तौर पर जो मेमोरी स्वैप की जाती है वह मेमोरी होती है जिसे लंबे समय तक एक्सेस नहीं किया गया है और जल्द ही इसकी आवश्यकता नहीं है।

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

क्या ऐसे कोई मामले हैं जहां स्वैग को कम करना उचित है?

हाँ। यदि आप किसी विशेष सर्वर अनुप्रयोग के लिए समर्पित सर्वर चला रहे हैं जो सिस्टम कैश से लाभान्वित नहीं होता है। कुछ डेटाबेस सर्वर जैसे ओरेकल सर्वर, MySQL / MariaDB कुछ मामलों में स्वैग को कम करने की सलाह देते हैं 1 से 10 तक क्योंकि ये डेटाबेस इंजन अपने स्वयं के कैशिंग का उपयोग करते हैं।

ध्यान दें कि यह केवल तभी सच है जब आपका सिस्टम उस एक कार्य के लिए समर्पित है, और MySQL / MariaDB के मामले में केवल तभी यदि आप विशुद्ध रूप से InnoDB या XtraDB का उपयोग कर रहे हैं, और MyISAM या Aria, आदि नहीं।


आपके संपूर्ण विवरण के लिए धन्यवाद। मुझे लगता है कि मेरे मामले में (4 जीबी रैम और 128 जीबी एसएसडी हार्ड) और मेरे उपयोग के साथ (जावा ईई विकास और इन विटियल बॉक्स में कई ओएस) स्वैपी = 20 उपयुक्त है। तुम क्या सोचते हो?
सईद ज़रीनफ़ाम

मुझे लगता है कि मेरी राय में 60 का डिफ़ॉल्ट सबसे अच्छा होगा।
थोमसट्रेटर

4
@BlancaHiggins क्या आपने उस पोस्ट को पढ़ा जिस पर आपने टिप्पणी की थी? आपकी टिप्पणी यह ​​नहीं बताती है कि वास्तव में स्वपन क्या होता है।
थोमसट्रेटर

1
यह एक उत्कृष्ट उत्तर है। इतनी बढ़िया व्याख्या के लिए आपका बहुत-बहुत धन्यवाद।
दान बैरन

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

14

एक सामान्य डेस्कटॉप पर, आपके पास 4-5 सक्रिय कार्य हैं जो 50-60% मेमोरी का उपभोग करते हैं। यदि आप 60 पर स्वैग सेट करते हैं, तो ACTIVE कार्य पृष्ठों में से लगभग 1 / 4-1 / 3 को स्वैप किया जाएगा। इसका मतलब है, प्रत्येक कार्य परिवर्तन के लिए, आपके द्वारा खोले गए प्रत्येक नए टैब के लिए, प्रत्येक जेएस निष्पादन के लिए, एक स्वैपिंग प्रक्रिया होगी।

समाधान 10. स्वैच्छिकता को स्थापित करना है। व्यावहारिक टिप्पणियों से, यह सिस्टम को डिस्क io कैश छोड़ने का कारण बनता है (जो कि डेस्कटॉप पर कोई भूमिका नहीं निभाता है, क्योंकि कैश / रीड कैश लिखना वास्तव में बिल्कुल भी उपयोग नहीं किया जाता है। जब तक आप लगातार LARGE की नकल नहीं करते हैं। फ़ाइलें) स्वैप में कुछ भी धकेलने के बजाय। व्यवहार में, इसका मतलब है कि सिस्टम पृष्ठों को स्वैप करने से इंकार कर देगा, इसके बजाय io कैश में कटौती करेगा, जब तक कि यह 90% उपयोग की गई मेमोरी को हिट न करे। और बदले में इसका मतलब है एक चिकनी, स्वैपलेस, तेज डेस्कटॉप अनुभव।

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

डेस्कटॉप पर, हालांकि, यह सटीक सेटिंग वास्तविक एप्लिकेशन की मेमोरी के ब्लॉक को स्वैप करने की ओर ले जाती है, जो इस डेटा को लगातार संशोधित या एक्सेस करती है।

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

डेस्कटॉप वास्तव में डिस्क io के बारे में परवाह नहीं करता है, क्योंकि डेस्कटॉप शायद ही कभी पढ़ता है और डेटा के बड़े हिस्से को दोहराता है। डिस्क ओआईओ पर कटिंग केवल स्वैपिंग को रोकने के लिए इतनी अधिक संभव है कि डेस्कटॉप के लिए बहुत अधिक अनुकूल है, 30% रैम के साथ डिस्क कैश के लिए 30% मेमोरी आरक्षित है (सक्रिय रूप से उपयोग किए गए अनुप्रयोगों से संबंधित ब्लॉकों से भरा) की अदला-बदली।

बस htop लॉन्च करें, एक ब्राउज़र खोलें, GIMP, लिब्रे ऑफिस - वहां कुछ दस्तावेज लोड करें और फिर कई घंटों तक ब्राउज़ करें। यह वास्तव में इतना आसान है।


3
सर्वर बनाम डेस्कटॉप अंतर विवरण के लिए +1। सर्वर का डिस्क कैश डिस्क फ़ील्ड पर किया जा सकता है।
डे डे

यदि यह मामला है, तो उबंटू के सर्वर और डेस्कटॉप दोनों संस्करण 60 के स्वैग के लिए डिफ़ॉल्ट क्यों हैं? यदि आप जो कहते हैं वह सच है, तो यह डेस्कटॉप संस्करण के लिए 20 या 10 के डिफ़ॉल्ट के साथ प्रदान करने के लिए अधिक समझ में आता है, लेकिन यह नहीं है।
JAB

1
इस निहितार्थ का संदर्भ कि स्वैग का सीधा प्रतिशत राम है, जो अदला-बदली करता है? मुझे नहीं लगता कि यह उस तरह काम करता है।
एक्सएन 2050 10

1
यह नहीं है स्वप्नदोष का संबंध राम के प्रतिशत से नहीं है। यह एक दस्ता है जो किसी समस्या की स्थिति में स्वैप करने की संभावना कम या अधिक होने की दिशा में एक फजी एल्गोरिथ्म को ट्विस्ट करता है। मुझे भी लगता है कि इस जवाब में सर्वर बनाम डेस्कटॉप वर्कलोड का वर्णन मान्यताओं का एक समूह बनाता है जो हमेशा पकड़ में नहीं आते हैं।
थोमसट्रेटर

9

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


यह सच है कि यदि आप एक सर्वर को एक विशेष कार्यभार के लिए समर्पित करते हैं जो आप जानते हैं कि सिस्टम कैश (एक डेटाबेस सर्वर की तरह) से लाभ नहीं होगा, तो स्वैग को कम करना समझ में आ सकता है। मुझे नहीं लगता कि कचरा संग्रह एक विशेष पर्याप्त मामला है। यदि स्मृति को बार-बार स्पर्श किया जाता है तो उसे स्वैप नहीं किया जाएगा, इसे भौतिक RAM में रखा जाएगा। केवल यही समय ऐसा नहीं है यदि आपके पास स्मृति की गंभीर स्थिति कम है - और स्वैपिंग जिम्मेदार नहीं है।
थॉमसन्टर

4

मैं सुझाव दूंगा कि सिस्टम मॉनीटर खोलते हुए कुछ प्रयोग करें, यह देखने के लिए कि आपकी मशीन कितनी लोड के तहत खुली है, मैं 4GB मेमोरी और 128GB SSD के साथ भी चल रहा हूं, इसलिए स्वैपीनेस वैल्यू को बदलकर 10 कर दिया गया है जिससे न केवल लोड के तहत प्रदर्शन बेहतर हुआ है बल्कि बोनस के रूप में SSD ड्राइव के जीवन में भी वृद्धि होगी क्योंकि यह कम लिखता है।

पूर्ण विवरण के साथ यह करने के लिए एक सरल वीडियो ट्यूटोरियल के लिए नीचे YouTube वीडियो देखें

http://youtu.be/i6WihsFKJ7Q


1
महान वीडियो जो आपने बनाया था, लेकिन वीडियो वास्तव में सीधे सवाल का जवाब नहीं देता है, यह स्वैग को बदलने पर एक हाउटो से अधिक है।
jmunsch

SSD जीवन संकेत के लिए +1, SSD के लिए सबसे अच्छा है अगर सिस्टम जितना संभव हो केवल पढ़ने के लिए है, बाकी को मेमोरी में रहना चाहिए और आज, मेमोरी आमतौर पर वर्तमान डेस्कटॉप पीसी पर एक बड़ी समस्या नहीं है।
डे

3

मैं 2017 के प्रौद्योगिकी पर दूसरों को अधिक पृष्ठभूमि देने के लिए बिग डेटा प्रदर्शन इंजीनियर से कुछ परिप्रेक्ष्य जोड़ना चाहता हूं।

मेरा व्यक्तिगत अनुभव यह है कि जब मैं आमतौर पर स्वैपिंग को यह सुनिश्चित करने के लिए अक्षम करता हूं कि मेरे सिस्टम अधिकतम गति पर चल रहे हैं, तो एक विशिष्ट समस्या के लिए मेरे कार्य केंद्र पर, मैंने पाया है कि 1 और 10 का स्वप्नदोष (हमेशा के लिए) और लंबे समय तक रुक जाता है। इस विशेष एप्लिकेशन के लिए 80 का स्वैगनेस डिफ़ॉल्ट प्रदर्शन (60) की तुलना में बहुत बेहतर प्रदर्शन और कम ठहराव की ओर जाता है। ध्यान दें कि मेरे पास 1 HDD द्वारा समर्थित 8GB रैम और 4x 256GB स्वैप है। मैं आमतौर पर अपने बेंचमार्क और पूर्ण हार्डवेयर स्पेक्स में देखे गए सटीक आँकड़े बताता हूँ, लेकिन मैंने अभी तक ऐसा नहीं किया है और यह एक हालिया लो-एंड डेस्कटॉप है जो यहाँ महत्वपूर्ण नहीं है।

मेरी पूर्व कंपनी में वापस, कारण है कि हमने स्पार्क सर्वर पर स्वैगनेस को [500GB से 4TB] x [10-100] नोड्स में सक्षम नहीं किया है, यह है कि हमने डेटा पाइपलाइन और डेटा संरचनाओं को अधिक कुशल बनाने के लिए एक संकेत के रूप में खराब प्रदर्शन देखा था तौर तरीका। हम एचडीडी / एसएसडी को भी बेंचमार्क नहीं करना चाहते थे। इसके अलावा, स्वैप करने पर डिस्क के समय को कम करने के लिए ज्यादा रैम के साथ 10-30 डिस्क प्रति नोड की आवश्यकता होती है।

आज से 20 साल पहले और भविष्य में 20 साल बाद भी यह मामला बना रहेगा कि कुछ समस्याएं रैम के लिए बहुत बड़ी हैं। अनंत समय और धन के साथ, हम प्रदर्शन को वांछनीय स्तर पर लाने के लिए किसी भी प्रक्रिया को अधिक हार्डवेयर या फिर से डिज़ाइन कर सकते हैं। स्वैपिंग हमें वास्तविक समस्या को अनदेखा करने की अनुमति देने के लिए सिर्फ एक हैक है (हमारे पास पर्याप्त राम नहीं है और हम अधिक पैसा खर्च नहीं करना चाहते हैं)।

उन लोगों के लिए जो सोचते हैं कि उच्च स्वप्नदोष एक बुरी सलाह है, यहां थोड़ा परिप्रेक्ष्य है। अतीत में, HD के पास कैश का केवल कुछ केबी होता था यदि कोई हो। इंटरफ़ेस आईडीई / समानांतर एटीए था। सीपीयू बस रैम और कई अन्य चीजों के साथ बहुत धीमी थी। संक्षेप में, सिस्टम हर तरह से बहुत धीमी गति से (आज के सापेक्ष) थे। कुछ साल पहले, HDDs SATA3 का उपयोग करते थे। आज, वे NVMe प्रोटोकॉल का उपयोग करते हैं, जिसमें महत्वपूर्ण विलंबता में सुधार होता है। HD में कई MB कैश है। और सबसे दिलचस्प हिस्सा यह है कि जब आप अपने स्वैप स्टोरेज के रूप में NVMe या PCIe के साथ एक आधुनिक SSD (बहुत अधिक स्थिर रीड / राइट धीरज और पूर्ण) का उपयोग करते हैं। यह लागत और प्रदर्शन के बीच सबसे अच्छा समझौता है। कृपया सस्ते या पुराने SSDs के साथ यह कोशिश न करें।

स्वैप + SSDs! उच्च-प्रदर्शन वाले वाष्पशील भंडारण के साथ, मैं अत्यधिक उच्च मूल्य वाले मूल्य के साथ प्रयोग करने की सलाह दूंगा। यह मुख्य रूप से मेमोरी एक्सेस पैटर्न (बेतरतीब ढंग से सभी मेमोरी बनाम शायद ही कभी सबसे अधिक एक्सेस करने वाली), मेमोरी उपयोग पर निर्भर करता है, यदि डिस्क बैंडविड्थ पहले से ही संतृप्त है, और थ्रशिंग की वास्तविक लागत।


1

यह हो सकता है कि स्टार्टअप पर या प्रोग्राम खोलने पर बहुत सारे गमागमन व्यवहार डिस्क से लिनक्स रीडिंग कॉन्फ़िगरेशन फाइल आदि हो। तो यह शायद सबसे अच्छा है कि हार्ड ड्राइव एक्सेस स्वैपिंग के कारण यह मानने से पहले सिस्टम मॉनिटर प्रोग्राम का उपयोग करें।

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