स्वैप स्पेस कैसे सेट करें?


114

रास्पबेरी पाई में केवल 256 एमबी रैम है, इसलिए मैं स्वैप स्पेस (या तो एसडी कार्ड या संलग्न यूएसबी स्टोरेज) का उपयोग करना चाहूंगा। मैं इसे किस तरह से सेट अप करूं?


10
पाई (और इसी तरह के उपकरणों) पर स्वैप दर्दनाक रूप से धीमा हो सकता है, और जो कुछ भी वास्तव में बड़े पैमाने पर स्वैप का उपयोग करके समाप्त होता है वह व्यावहारिक रूप से सिस्टम को एक ठहराव में लाएगा। सावधान!
मैटजेन

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

3
@ सवाल यह है कि "स्वैप स्पेस कैसे सेट किया जाए?" मेरी राय में, एक सही उत्तर का वर्णन करना चाहिए कि यह कैसे करना है और साथ ही कुछ नुकसानों पर ध्यान देना है और दुरुपयोग के खिलाफ चेतावनी दी है। आपका उत्तर बस यही करता है कि "सबसे लोकप्रिय" उत्तर केवल आपको बताता है कि आपको "ऐसा बिल्कुल भी क्यों नहीं करना चाहिए" (जो गूंगा है, क्योंकि इसका उपयोग करने का एक उचित तरीका है, और यह वास्तव में उपयोगी है)।
एंड्रयू लार्सन

1
इस पृष्ठ पर रास्पबेरी पाई के साथ स्वैप का उपयोग करने के खिलाफ लगभग एक लाख चेतावनी है, लेकिन अगर आपको एक बार कुछ बनाने की आवश्यकता है, तो यह अपरिहार्य है।
आर्कटिक

1
@ अर्चोनिक - +1 । मैं मौके पर मेमोरी कंपाइलिंग फाइलों से बाहर निकलता हूं । एक साथ एक छोटा सा स्वैप फ़ाइल कम swapiness मौजूदा स्थिति में सुधार होगा।
jww

जवाबों:


134

रास्पियन डैफ़- स्वैफ़ाइल का उपयोग करता है , जो "मानक" स्वैप-विभाजन आधारित समाधान के बजाय एक स्वैप-फ़ाइल आधारित समाधान है। स्वैप का आकार बदलना बहुत आसान है।

कॉन्फ़िगरेशन फ़ाइल है:

/etc/dphys-swapfile 

सामग्री बहुत सरल है। डिफ़ॉल्ट रूप से मेरे रास्पियन में 100MB स्वैप है:

CONF_SWAPSIZE=100

यदि आप आकार बदलना चाहते हैं, तो आपको संख्या को संशोधित करने और dphys-swapfile को पुनरारंभ करने की आवश्यकता है:

/etc/init.d/dphys-swapfile restart

संपादित करें: रास्पबियन पर डिफ़ॉल्ट स्थान / var / स्वैप है, जो (निश्चित रूप से) एसडी कार्ड पर स्थित है। मुझे लगता है कि यह एक बुरा विचार है, इसलिए मैं यह बताना चाहूंगा कि / etc / dphys-swapfile के पास निम्न विकल्प भी हो सकते हैं: CONF_SWAPFILE = / media / btsync / swapfile

मुझे केवल इसके साथ समस्या है, USB संग्रहण को स्वचालित किया जाता है, इसलिए यहां एक संभावित दौड़ (ऑटोमाउंट बनाम स्वेपोन)


2
यह सही जवाब है। अन्य किसी भी उत्तर ने dphys-swapfile का उल्लेख नहीं किया।
केंजी नोगुची

1
मैंने इस उत्तर को वास्तव में सही के रूप में उकेरा है। काफी कठिन तरीके से हाल ही में सीखा, आपका जवाब मुझे बहुत समय बचा सकता है। ;-)
द्राचीनफेल्स

क्या आप स्पष्ट कर सकते हैं कि उपयोग /var/swapकरना एक बुरा विचार क्यों है?
एंड्री पोर्टनॉय

R संकुल को स्थापित करने के लिए, जो "सिस्टम कॉल विफल होने के कारण मेमोरी को आवंटित नहीं कर सकता" से पहले विफल हो गया: CONF_SWAPSIZE = 1024 सेट करें। कम पर्याप्त नहीं है।
लंबिकालिस्ट

36

आप काफी आसानी से स्वैप स्पेस सेट कर सकते हैं। उदाहरण के लिए, यदि आपका USB ड्राइव है /dev/sdx, तो आप उपयोग करेंगे (आपको इसके लिए मूल होना चाहिए):

$ mkswap /dev/sdx
$ swapon /dev/sdx

ध्यान दें कि यह पूरे उपकरण का उपयोग करेगा और आप शायद इस पर सभी मौजूदा डेटा खो देंगे।

आप एक स्वैप फाइल भी बना सकते हैं ( loopडिवाइस का उपयोग करके ) इस तरह:

$ dd if=/dev/zero of=/path/to/swapfile bs=1M count=1024 # For 1GB swap file
$ mkswap /path/to/swapfile
$ swapon /path/to/swapfile

जब आपको अब स्वैप फ़ाइल की आवश्यकता नहीं है (यदि आप उदाहरण के लिए यूएसबी ड्राइव को बाहर निकालना चाहते हैं), तो आपको उपयोग करना होगा swapoff <device>। ऐसा नहीं करने पर शायद सिस्टम क्रैश हो जाएगा।

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


2
क्यों लूपबैक जोड़ें? निश्चित रूप से यह आवश्यक नहीं है?
पोप

तुम सही हो, यह नहीं है। मैंने उस उत्तर को प्रतिबिंबित करने के लिए संपादित किया।

2
मुझे लगता है कि उपयोगकर्ताओं को कॉपी करने और चिपकाने और गलती mkswapसे उनके रूट विभाजन पर चलने से बचने के लिए आपको इसे बदलना चाहिए । मुझे लगता sdxहै कि एक अच्छा सम्मेलन है।
Jivings

3
वे उपयोगकर्ता जो SWAP को सक्षम करने का विकल्प चुनते हैं, वे कर्नेल स्वपन को समायोजित करने में रुचि रखते हैं ।
EarthmeLon

@earthmelon Raspbian Jessie में डिफ़ॉल्ट रूप से 1 स्वैग है।
काव

32

ऐसा बिल्कुल न करें।

आपको रास्पबेरी पाई पर स्वैप सक्षम नहीं करना चाहिए ।

हालांकि यह संभव है, यह उपयोगी नहीं है। यहां तक ​​कि एक कक्षा 10 एसडीएचसी कार्ड पर, यह बहुत धीमा है। साथ ही आप एसडी कार्ड की उम्र कम कर देंगे।

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

संभावित अपवाद:

  • यदि आप एक (चुंबकीय) हार्ड ड्राइव (हालांकि एक यूएसबी-एसएटीए या यूएसबी-आईडीई एडाप्टर) को कनेक्ट करते हैं
  • यदि आप ZRAM या कुछ इसी तरह का उपयोग करते हैं

3
कोई संदेह नहीं है कि एक USB bey पर स्वैप करना आपकी कुंजी को बहुत तेजी से मार देगा, SD कार्ड पर स्वैप करना भी खतरनाक है, भले ही नए (10 वीं कक्षा) एसडी कार्ड इसे बेहतर समर्थन कर सकें। ZRAM स्पष्ट रूप से जाने का तरीका है यदि आपको अधिक RAM की आवश्यकता है
neofutur

1
आपको लगता है कि विंडोज में रेडीबॉस्ट तकनीक के साथ कि कोई USB ड्राइव (या eSata) करेगा, निश्चित नहीं है कि अगर ReadyBoost इसका उपयोग कर सकता है, तो रास्पबेरी पाई का कोई फायदा नहीं होगा, लेकिन दिलचस्प होगा) जो वास्तविक रैम है ताकि आप कर सकें अपने कंप्यूटर के प्रदर्शन को बढ़ाएं। हालांकि यह सिर्फ एक नया मदरबोर्ड खरीदने के लिए आसान और सस्ता होगा, जिसमें आपकी ज़रूरत की मात्रा में रैम का समर्थन होता है।
किब्बी

33
इस उत्तर में इतने उत्थान क्यों हैं? स्वैप का उपयोग करने के लिए बहुत सारे कारण हैं। मैंने कुछ दिनों के दौरान एक बड़ी लाइब्रेरी को संकलित करने के लिए बाहरी ड्राइव पर एक स्वैप फ़ाइल का उपयोग किया। यह धीमी गति से बंदरों में तैरते मृत बंदर के रूप में है, लेकिन इसका मतलब यह नहीं है कि आपको "ऐसा बिल्कुल नहीं करना चाहिए।"
एंड्रयू लार्सन

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

2
रास्ता बहुत मजबूत है। "सबसे अच्छा नहीं", हो सकता है, लेकिन "बुरा, बेकार, हानिकारक और बेकार" भ्रामक है। सब कुछ उपयोग के साथ पहनता है, मन में ऑक्सीजन विषैला होता है, और रास्पियन स्वैफ़ाइल का उपयोग करता है। एक मंदी आमतौर पर दुर्घटना से बेहतर होती है, और आपको हर कुछ महीनों में एक बार विशाल चीजों को संकलित करने देती है। बस कम swappiness सेट करें और आप अच्छे हैं।
काय

4

Raspbmc /etc/init/swap.confस्वैप / अदला-बदली फ़ाइल के माध्यम से कॉन्फ़िगर करने के लिए उपयोग करता है। यह पहले की उपस्थिति के लिए जाँच करता है /home/pi/.enable_swap

यदि आप हटाते हैं, /home/pi/.enable_swapतो स्वैप फ़ाइल नहीं बनाई जाती है, और फिर touch /home/pi/.enable_swapयदि आपको स्वैप चालू करने और रीबूट करने की आवश्यकता है, तो इसे फिर से बनाएं।


4

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

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


ब्रॉडकॉम चिप और ईथरनेट कंट्रोलर के बीच सीमित बैंडविड्थ के कारण आरपीआई जीबी ईथरनेट से बिल्कुल भी लाभान्वित नहीं होगा।
दिमित्री ग्रिगोरीव

1
... और ईथरनेट नियंत्रक USB चिप में ऐड-ऑन के रूप में ! हाँ, लेकिन हम एक काल्पनिक आरपीआई डिज़ाइन का सपना देख सकते हैं जहाँ नेटवर्किंग हार्डवेयर SoC कोर डिवाइस का हिस्सा था। 8-पी
स्लीव्सन

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