क्यों कुबेरनेट पर स्वैप अक्षम करें


35

कुबेरनेट्स 1.8 के बाद से, ऐसा लगता है कि मुझे अपने नोड्स (या सेट ) पर स्वैप को अक्षम --fail-swap-onकरना होगा false

मैं तकनीकी कारण नहीं खोज सका कि कुबेरनेट्स स्वैप को अक्षम करने पर जोर क्यों देते हैं। क्या यह प्रदर्शन कारणों से है? सुरक्षा को ध्यान में रखते हुए? इसका कारण प्रलेखित नहीं है?

जवाबों:


28

कुबेरनेट्स का विचार संभवत: उपयोग किए गए 100% के करीब के रूप में कसने वाले उदाहरणों को पैक करना है। सभी तैनाती CPU / मेमोरी सीमा के साथ पिन की जानी चाहिए। तो अगर अनुसूचक मशीन को एक पॉड भेजता है तो उसे कभी भी स्वैप का उपयोग नहीं करना चाहिए। आप स्वैप नहीं करना चाहते क्योंकि यह चीजों को धीमा कर देगा।

यह मुख्य रूप से प्रदर्शन के लिए है।


2
फिर विचार यह है कि अगर एक नोड में केवल 3 जी का उपयोग करने के लिए स्वतंत्र है .. और आपका नया पॉड 4 चाहता है .. इसके दूसरे नोड पर जाना है।
माइक

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

13

इसका कारण, जैसा कि मैं इसे समझता हूं, यह है कि क्यूबलेट को स्वैप स्थितियों को संभालने के लिए डिज़ाइन नहीं किया गया है और कुबेरनेट्स टीम इसे लागू करने की योजना नहीं बना रही है क्योंकि लक्ष्य यह है कि पॉड्स मेजबान की स्मृति के भीतर फिट होना चाहिए।

से इस मुद्दे

स्वैप के लिए समर्थन गैर-तुच्छ है। गारंटीकृत फली को कभी भी स्वैप की आवश्यकता नहीं होनी चाहिए। अस्थिर पॉड्स को स्वैप की आवश्यकता के बिना अपने अनुरोधों को पूरा करना चाहिए। BestEffort फली की कोई गारंटी नहीं है। पॉकेट्स के दौरान यहां अभी भी पूर्वानुमानित व्यवहार की सही मात्रा प्रदान करने के लिए क्यूबलेट में अभी स्मार्ट की कमी है।


10

टीएल; डीआर ठीक से स्वैप का उपयोग नहीं करना सिर्फ एक आलसी हैक है जो मेमोरी सबसिस्टम की खराब समझ और मौलिक सिस्टम प्रशासन कौशल की कमी को प्रदर्शित करता है। अवसंरचना सेवाओं को डिजाइन करना और इन प्रणालियों को न समझना विफलता में समाप्त होने के लिए बाध्य है।

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

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

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

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


2
मुझे अत्यधिक संदेह है कि कुबेरनेट्स परियोजना के अनुचर आलसी हैं। कुबेरनेट में चल रहे एक कंटेनरीकृत पारिस्थितिक तंत्र के संदर्भ में कोई भी तर्क नहीं दिया गया है।
स्पूडर

-2

इसे फिर से सक्षम करने के लिए टिकट है। आपको वहां और अधिक जानकारी प्राप्त होगी

https://github.com/kubernetes/kubernetes/issues/53533


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