Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

LXD कंटेनर द्वारा उपयोग किए जा सकने वाले संसाधनों को कैसे सीमित करें

LXD कंटेनर द्वारा उपयोग किए जा सकने वाले संसाधनों को कैसे सीमित करें

पिछले लेख में, आप पता लगा सकते हैं कि LXD क्या है और इसके साथ कैसे शुरुआत करें, यदि आप प्लेटफॉर्म से अपरिचित हैं।

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

LXD कंटेनर पर सीमाएं कब उपयोगी हो सकती हैं

  • एक सेवा प्रदान करना और प्रत्येक ग्राहक को एक LXD इंस्टेंस देना। उदाहरण के लिए, यह एक बड़ा सर्वर हो सकता है, और आप प्रत्येक ग्राहक की वेबसाइट को एक अलग कंटेनर में होस्ट करते हैं। यदि एक वेबसाइट को ट्रैफिक का अचानक विस्फोट मिलता है, तो यह अन्य इंस्टेंस को धीमा कर सकता है। सीमाओं के साथ, केवल एक कंटेनर धीमा होगा, और बाकी सामान्य रूप से काम करेंगे।
  • एक समान परिदृश्य में, आप आसानी से अलग-अलग सर्विस प्लान बेच सकते हैं। एक ग्राहक X मात्रा के संसाधनों के लिए भुगतान कर सकता है, और दूसरा Y मात्रा के लिए। और आप इसे कुछ सरल कमांड के साथ आसानी से समायोजित कर सकते हैं।
  • आप सेवा से इनकार के सरल रूपों के खिलाफ खुद को बचा सकते हैं। जब एक कंटेनर पर बमबारी होती है, तो यह अपनी संसाधन उपयोग सीमा तक पहुंच जाएगा। अन्य कंटेनर प्रभावित नहीं होंगे।
  • आपके पास दो कंटेनर हैं जो प्रत्येक उपलब्ध CPU समय का 100% उपयोग करेंगे। हालांकि, आप चाहते हैं कि एक दूसरे की तुलना में तेजी से काम खत्म करे। उदाहरण के लिए, एक कल के लिए आवश्यक प्रोजेक्ट के लिए वीडियो रेंडर कर सकता है। आप पहले को 90% CPU समय और दूसरे को 10% असाइन कर सकते हैं।

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

LXD कंटेनर पर संसाधन सीमाएं कैसे सेट करें

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

sudo lxd init

मेमोरी उपयोग सीमित करें

नीचे दिए गए कमांड में, "container_name" को अपने कंटेनर के वास्तविक नाम से बदलें। मेमोरी सीमा सेट करना उतना ही सरल है जितना दर्ज करना:

lxc config set container_name limits.memory 100MB

यदि आप मेगाबाइट के बजाय गीगाबाइट का उपयोग करना चाहते हैं तो "MB" के बजाय "GB" टाइप करें।

CPU उपयोग सीमित करें

जब आप सीमित करना चाहते हैं कि एक कंटेनर कितने CPU कोर उपयोग कर सकता है, तो टाइप करें:

lxc config set container_name limits.cpu 2

विशिष्ट CPU कोर पर "पिन" करने के लिए, उपयोग करें:

lxc config set container_name limits.cpu 0-0

यह कंटेनर को केवल पहले CPU का उपयोग करने देगा। दूसरे का उपयोग करने के लिए, आप 1-1 टाइप करेंगे। पहले से तीसरे तक सभी CPU कोर का उपयोग करने के लिए, आप 0-3 टाइप करेंगे।

एक अन्य प्रकार की सीमा यह है कि एक कंटेनर कितना CPU समय उपयोग कर सकता है।

lxc config set container_name limits.cpu.allowance 10ms/100ms

यह कंटेनर को हर 100 मिलीसेकंड में से केवल दस मिलीसेकंड CPU समय का उपयोग करने देगा, इसलिए एक CPU कोर का लगभग 10%।

डिस्क उपयोग सीमित करें

डिस्क-संबंधी संसाधनों को सीमित करने के लिए, आपको पहले अपने कंटेनर में एक रूट डिस्क डिवाइस जोड़ना होगा। यह डिफ़ॉल्ट रूप से पहले से मौजूद है, डिफ़ॉल्ट LXD प्रोफाइल से विरासत में मिला है। लेकिन आप इसे प्रति कंटेनर आधार पर इसकी सेटिंग्स नहीं बदल सकते जब तक आप ऐसा नहीं करते।

lxc config device add container_name root disk pool=default path=/

यदि आपने अपने पूल का नाम अलग रखा है, तो "default" को अपने स्टोरेज पूल के नाम से बदलें। यदि आप इसका नाम भूल गए हैं, तो आप इसे इसके साथ प्रदर्शित कर सकते हैं:

lxc storage list

एक LXD इंस्टेंस द्वारा उपयोग की जा सकने वाली डिस्क स्पेस को सीमित करने के लिए:

lxc config device set container_name root size 7GB

दुर्भाग्य से, I/O सीमाएं (पढ़ें/लिखें "स्पीड" और IOPS) फिलहाल काम नहीं करती हैं।

नेटवर्क उपयोग सीमित करें

डिस्क के साथ, आपको पहले एक वर्चुअल ईथरनेट डिवाइस जोड़ना होगा जिसे आप कॉन्फिगर कर सकें। अपने नेटवर्क ब्रिज का नाम ढूंढें जो आपके LXD इंस्टेंस को बाहरी दुनिया से जोड़ता है।

lxc network list

यदि आवश्यक हो तो "lxdbr0" को बदलें (यदि आपके मामले में ब्रिज का नाम अलग है)। यदि आपने "lxd init" कॉन्फिगरेशन चरणों में नेटवर्क प्रकार के रूप में ब्रिज्ड (डिफ़ॉल्ट उत्तर) नहीं चुना, तो आपको नीचे दी गई कमांड को अपनी पसंद को प्रतिबिंबित करने के लिए अनुकूलित करना पड़ सकता है। उदाहरण के लिए, आपको "nictype" को भी बदलना पड़ सकता है, जो भी आपने अपने LXD नेटवर्क के लिए उपयोग किया है।

lxc config device add container_name eth0 nic name=eth0 nictype=bridged parent=lxdbr0

अंत में, नेटवर्क इनग्रेस (डाउनलोड) और/या इग्रेस (अपलोड) पर सीमाएं सेट करें।

lxc config device set container_name eth0 limits.ingress 1Mbit

1Mbit एक मेगाबिट है (मेगाबाइट नहीं)। एक बाइट में 8 बिट होते हैं, जिसका अर्थ है कि यह डाउनलोड को लगभग 1/8=0.125Mbit प्रति सेकंड तक सीमित करेगा, लगभग 120 किलोबाइट। इसलिए, यदि आप इसे 1MB/s (मेगाबाइट) से डाउनलोड करना चाहते हैं, तो 8 से गुणा करें, और इनग्रेस सीमा को 8Mbit पर सेट करें।

इग्रेस के लिए, उपयोग करें:

lxc config device set container_name eth0 limits.egress 1Mbit

निष्कर्ष

यह संसाधन सीमाओं से संबंधित सबसे अधिक उपयोग की जाने वाली प्रॉपर्टी को कवर करता है। लेकिन lxc config device set और lxc config set के साथ आप बहुत अधिक वेरिएबल सेट कर सकते हैं। आप LXD के गिटहब पेज पर इन एडजस्टेबल कंटेनर प्रॉपर्टी के बारे में अधिक पढ़ सकते हैं।


  1. एंड्रॉइड में InputFilter का उपयोग करके EditText में कैरेक्टर सीमित कैसे करें? एंड्रॉइड में InputFilter का उपयोग करके EditText में कैरेक्टर सीमित कैसे करें?

    InputFilter.LengthFilter के साथ EditText मैक्स लंबाई सेट करें यह उदाहरण दर्शाता है कि InputFilter का उपयोग करके EditText में अधिकतम कैरेक्टर सीमा कैसे सेट करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में EditText res/layout/activity_main.xml: <?xml

  1. Firefox में Multi-Account Containers का उपयोग कैसे करें Firefox में Multi-Account Containers का उपयोग कैसे करें

    Multi-Account Containers Firefox द्वारा लॉन्च किया गया एक ऐड-ऑन है जिसे आपके डिजिटल फुटप्रिंट को कम करने में मदद करने के लिए डिज़ाइन किया गया है। यह कंटेनरों का उपयोग करता है ताकि आप अपने कंप्यूटर पर कई प्रोफाइल के लिए अपनी ब्राउज़िंग गतिविधि को अलग कर सकें, जो आपके ब्राउज़र की कुकीज को प्रबंधित करन

  1. OpenVPN के साथ निजी AWS संसाधनों को सुरक्षित रूप से एक्सेस करें OpenVPN के साथ निजी AWS संसाधनों को सुरक्षित रूप से एक्सेस करें

    यह लेख मेरे नए प्लुरलसाइट कोर्स, कनेक्टिंग ऑन-प्रेम रिसोर्सेज टू योर AWS इन्फ्रास्ट्रक्चर के एक भाग से अनुकूलित किया गया है।क्या आपको कभी-कभी उन संसाधनों से जुड़ने की आवश्यकता होती है जो आपने Amazon Web Services पर चलाए हैं? अपने सार्वजनिक EC2 इंस्टेंस को SSH का उपयोग करके एक्सेस करना और अपने S3 डेट