मेमोरी से पहले लिनक्स सर्वर स्वैपिंग पूरी तरह से फुल है


0

मैं उम्मीद करता था कि सभी रैम का उपयोग स्वैपिंग के अनुभव से पहले किया जाएगा, लेकिन मेरे पास यह अजीब परिणाम है htop:

सर्वर पर चल रहे htop का स्क्रीनशॉट।

मतलब कि 24GB RAM वाले मेरे सर्वर पर, मेरे सॉफ़्टवेयर ने 1GB मेमोरी डिस्क पर स्वैप की, जब वे केवल 23GB मेमोरी का उपयोग करते हैं।

हार्डवेयर से कम मेमोरी का उपयोग करने पर मुझे स्वैपिंग की उम्मीद नहीं थी ... सर्वर ऐसा क्यों कर रहा है?


" मुझे उम्मीद है कि स्वैप का अनुभव करने से पहले सभी रैम का उपयोग किया जाएगा ... " क्यों? के लिए सुपर उपयोगकर्ता खोजें swap
रॉन मौपिन

आपकी स्वैग सेटिंग क्या है? के रूप से, यह सामान्य है; सर्वर की 90.8% रैम उपयोग में है, जो वास्तव में पूर्ण के करीब है; जब मेमोरी लगभग फुल हो जाएगी तो ज्यादातर सिस्टम स्वैप हो जाएंगे । आप सिस्टम को स्वैप नहीं करने के लिए बाध्य कर सकते हैं जब तक कि 0 पर स्वैगपन सेट करके बिल्कुल आवश्यक न हो, लेकिन यह अनुशंसित नहीं है।
bwDraco

आपके पिछले प्रश्नों के आधार पर, मैं मान रहा हूं कि आपका सिस्टम लिनक्स चला रहा है। यदि ऐसा नहीं है, तो इसे प्रतिबिंबित करने के लिए अपने प्रश्न को संपादित करना सुनिश्चित करें।
bwDraco

यह भी ध्यान देने योग्य है कि योयो का स्टैंडबाय या इस तरह का कोई राम नहीं है। आपका राम वास्तव में भारी उपयोग हो रहा है।
जर्नीमैन गीक

जवाबों:


0

इस व्यवहार को एक कर्नेल सेटिंग के माध्यम से नियंत्रित किया जाता है vm.swappiness, जिसे 0 से 100 तक की सीमा पर सेट किया जा सकता है। 60 का डिफ़ॉल्ट मान सिस्टम को भौतिक मेमोरी पूरी तरह से पूर्ण होने से पहले कुछ हद तक स्वैप करने का कारण होगा, जो स्मृति दबाव में प्रदर्शन को बनाए रखने में मदद करता है, जबकि थ्रैशिंग के कारण प्रदर्शन को नीचा दिखाने के लिए इतना स्वैप नहीं करना चाहिए ।

इसे 0 पर स्वैग को सेट करके अक्षम किया जा सकता है, जिस स्थिति में सिस्टम स्वैप नहीं करेगा जब तक कि बिल्कुल आवश्यक न हो। यह समझ में आ सकता है यदि आपके पास आमतौर पर बहुत सारी मुफ्त रैम है। हालाँकि, प्रदर्शन बंद हो जाएगा, जिस पल आपके सिस्टम की भौतिक मेमोरी पूरी तरह से भर जाती है क्योंकि सिस्टम को अचानक इनॉपपोर्ट्यून समय पर स्वैप करने के लिए मजबूर किया जाता है जब किसी एप्लिकेशन को मेमोरी की आवश्यकता होती है, बजाय अग्रिम में, और आपके सर्वर के रूप में आपके मामले में अनुशंसित नहीं है। पूर्ण के करीब चल रहा है।

संभवतः आपके लिए 10 की तरह कम (लेकिन नॉनज़रो) मूल्य पर स्वैग सेट करना बेहतर होगा, जो कि प्रोग्राम की आवश्यकता होने पर रैम को मुक्त करने के लिए अंतिम क्षण तक इंतजार न करते हुए अनावश्यक स्वैपिंग को कम कर देगा। सर्वश्रेष्ठ सेटिंग आपके वातावरण पर निर्भर करती है, इसलिए विभिन्न सेटिंग्स के साथ प्रयोग करें जब तक कि आपको सबसे अच्छा परिणाम न मिले।

स्वैगनेस सेटिंग को बदलने के लिए, रूट के रूप में /proc/sys/vm/swappinessउपयोग करने के लिए वांछित मान लिखें echo। स्थायी परिवर्तन करने के लिए, एक vm.swappinessपंक्ति को /etc/sysctl.conf(आवश्यकतानुसार 10 को अपने वांछित मान से बदलें) जोड़ें:

vm.swappiness = 10

1

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

डेस्कटॉप सिस्टम के लिए, कुछ ऑपरेशन सिस्टम (उदा .: विंडोज) यहां तक ​​कि आपके द्वारा उपयोग किए जाने वाले सॉफ्टवेयर्स को भी अक्सर मेमोरी में डाल देते हैं और डेटा डालते हैं जो वर्तमान में हार्ड डिस्क पर उपयोग नहीं किया जाता है। यह अच्छी तरह से काम नहीं करता है जब सिस्टम को नए सिरे से स्थापित किया जाता है लेकिन आप इसका उपयोग करते समय बेहतर और बेहतर हो जाएंगे।


मुझे यकीन नहीं है कि बाद वाला पैराग्राफ ( सुपरफच नामक तकनीक का वर्णन ) वास्तव में यहां लागू होता है। सिस्टम केवल अप्रयुक्त मेमोरी में ऐप डेटा को प्री लोड करता है, जिसे एप्लिकेशन द्वारा मेमोरी की आवश्यकता होने पर तुरंत मुक्त कर दिया जाता है। इसके अलावा, +1।
bwDraco

@bwDraco हां, अगर "अनपेक्षित" वर्कलोड आता है, तो उन मेमोरी को मुक्त कर दिया जाएगा और एक अन्य एप्लिकेशन को इसकी आवश्यकता होगी, लेकिन रैम में "सुपरफिटेड" डेटा लाने के लिए विंडोज अभी भी पेजिंग फ़ाइल (जो हार्ड ड्राइव पर है) का उपयोग करेगा। i.imgur.com/8hnfebN.png
मारियस टैनक्रेडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.