क्या वैगंट द्वारा प्रबंधित लिनक्स अतिथि वीएम के लिए एक स्वैप फ़ाइल बनाना संभव है?


8

मेरे Vagrantfileपास मेरे निम्नलिखित प्रदाता हैं:

वैग्रांटफाइल का अंश:

config.vm.provider :virtualbox do |vb|
  vb.gui = false
  vb.customize ["modifyvm", :id, "--memory", "4096"]
end

जब मैं free -mबनाए गए वीएम के भीतर चलता हूं तो मुझे निम्नलिखित रिपोर्ट दिखाई देती है:

             total       used       free     shared    buffers     cached
Mem:          3953        337       3615          0         18        119
-/+ buffers/cache:        199       3753
Swap:            0          0          0

जब वीएम का निर्माण और प्रावधान किया जा रहा है, क्या यह स्वैगमेंट प्रदान करना संभव है?

मैं स्थापित करने की कोशिश की है vm.swappinessमें /etc/sysctl.confऔर वी एम को पुन: प्रारंभ, लेकिन मैं किसी भी वी एम को स्वैप स्पेस जोड़ने का असर नहीं दिख रहा।

मुझे स्वैप स्पेस की आवश्यकता क्यों है? मैं नहीं बल्कि स्वैप स्थान के साथ सौदा और सब कुछ स्मृति में चलाना होगा। हालांकि, कुछ अनुप्रयोगों के लिए (PHP के लिए संगीतकार परियोजना, उदाहरण के लिए) कुछ शर्तों के तहत बहुत अधिक मेमोरी का उपयोग करने के लिए कुख्यात हैं। स्वैप स्पेस के बिना मुझे एक वीएम पर फेंकने वाली मेमोरी की मात्रा के साथ बहुत उदार होना होगा, अगर मेरे पास स्वैप स्पेस था - हालांकि यह उतना कुशल नहीं हो सकता है - मैं सैद्धांतिक रूप से कम मुद्दों में चलाऊंगा।

जवाबों:


4

आपके द्वारा देखी गई मेमोरी सेटिंग का उपयोग केवल VM की रैम को कॉन्फ़िगर करने के लिए किया जाता है। हालाँकि, स्वैप स्पेस परिभाषा डिस्क छवि का हिस्सा है। यह चित्र आपको config.vm.boxपरिभाषा के भाग के रूप में प्रदान किया गया है Vagrantfile। मेरे विशिष्ट मामले में मैंने देखा कि स्वैप स्थान को आसानी से पुन: संयोजित नहीं किया जा सकता है (मेरे पास केवल 1 जीबी स्वैप की है)।

आपके मामले में मैं आधार चित्र ( config.vm.box) को बदलने की सलाह देता हूं , या अपने मूल फ़ाइल सिस्टम में एक स्वैप-फ़ाइल को जोड़कर उदाहरण के लिए इस स्क्रिप्ट को अपने में एकीकृत करता हूं Vagrantfileयह एक और कड़ी है जो आजमाने लायक है।


धन्यवाद, मुझे लगता है कि आधार छवि को इसके स्वैप को संशोधित करने के बाद मैंने इसे और आगे देखा। जैसा कि यह पता चला है कि मैं कार्यक्रम पर विभिन्न कार्यों का उपयोग करके अपने मुद्दों को प्राप्त कर सकता हूं जिसमें बहुत अधिक मेमोरी की आवश्यकता होती है। ऐसा नहीं लगता है कि आधार छवि को संशोधित करने के अलावा कोई अन्य समाधान है।
सीन क्विन

लिंक की गई स्क्रिप्ट (पहले वाली) ने मेरे लिए अच्छा काम किया। मामले में लिंक कभी भी बासी हो जाता है: create_swap.sh और remove_swap.sh कच्चे गिस्ट के रूप में
panepeter

12

बस इस लाइन को अपनी योनि फ़ाइल में जोड़ें

Vagrantfile

 # Enable Dynamic Swap Space to prevent Out of Memory crashes
config.vm.provision "shell", inline: "sudo apt install swapspace -y"

और फिर पुनरावृत्ति

vagrant up --provision

यह काम किस प्रकार करता है

यह एक डायनामिक स्वैप स्पेस डेमॉन है। कई हैं, लेकिन यहां एक लोकप्रिय है।

sudo apt install swapspace

यह सत्यापित करने के लिए कि यह चल रहा है

sudo service swapspace status

Http://pqxx.org/development/swapspace/ से अंश

लिनक्स कर्नेल के लिए यह सिस्टम डेमॉन का लक्ष्य बड़ी, निश्चित स्वैप विभाजन या स्वैप फ़ाइलों की आवश्यकता को पूरा करना है।

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

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


0

यदि आप अपने वैग्रंट बॉक्स को व्यवस्थित करने के लिए शेफ का उपयोग कर रहे हैं, तो सबसे आसान उपाय शायद swap_fileसंसाधन का उपयोग करना है। यह संसाधन बावर्ची 14.0 में नया है।

उदाहरण के लिए, अपने नुस्खा में निम्नलिखित जोड़ें:

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