संक्षिप्त उत्तर:
अपनी स्वैप फ़ाइल को यहां सेट करें:
round(sqrt(RAM))
यदि आप हाइबरनेशन का उपयोग नहीं करते हैं
RAM+round(sqrt(RAM))
यदि आप हाइबरनेशन का उपयोग करते हैं
अपने swappiness
10 को डेस्कटॉप पर सेट करें , लेकिन सर्वर पर नहीं!
लंबे उत्तर:
भूतकाल में:
पिछले 25 वर्षों के लिए उपयोग में अंगूठे का नियम न्यूनतम 1xRAM और अधिकतम 2xRAM रहा है, जो कि आप हर समय उद्धृत करेंगे।
उस न्यूनतम आयु को पाषाण युग में वापस सेट किया गया था जब मैं एक किशोर था और डायनासोर अभी भी पृथ्वी पर घूमते थे और क्योंकि रैम अभी बहुत महंगा था और आपको कुछ भी पूरा करने में सक्षम होने के लिए उस स्वैप स्थान की आवश्यकता थी।
घटते रिटर्न के कारण उस समय अधिकतम सेट किया गया था: यह बहुत धीमी गति से स्वैप करने के लिए बहुत धीमी है क्योंकि एचडीडी का उपयोग 1000 धीमी है तो राम का एक कारक है: एक आपात स्थिति में अच्छा है, लेकिन रोजमर्रा के उपयोग के लिए वास्तव में अच्छा नहीं है! उस समय, जब आप स्वैप स्थान से बाहर भागे थे, तो अधिक रैम जोड़ने का समय था! (जो आज भी सत्य है)।
वर्तमान में:
यदि आप हाइबरनेशन का उपयोग नहीं करते हैं और आपकी मेमोरी 1GByte से अधिक है, तो अंगूठे का नया नियम वह है round(sqrt(RAM))
जहां RAM
स्पष्ट रूप से GB और sqrt
वर्गमूल में आपके RAM का आकार है । :-)
यदि आप हाइबरनेशन का उपयोग करते हैं, तो आपको रैम की पूरी मात्रा को स्वैप करने में सक्षम होना चाहिए + पहले से ही डिस्क को रैम को स्वैप करना, इस प्रकार सूत्र बन जाता है: RAM+round(sqrt(RAM))
कम रिटर्न का नियम आज भी अधिकतम के लिए है, लेकिन जब तक आप अपने वास्तविक उपयोग का परीक्षण नहीं करते हैं , तब तक 2xRAM लेना डिस्क स्थान की बर्बादी है , इसलिए जब तक आप अन्य कार्यप्रणालियों का उपयोग करके स्वैप स्थान से बाहर चलाने के लिए अधिकतम उपयोग न करें ।
ये सभी मिलकर आपको निम्न तालिका देते हैं: (पिछले 3 कॉलम स्वैप स्पेस को दर्शाते हुए)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
ऊपर सिर्फ अंगूठे का एक नियम है; यह गुरुत्वाकर्षण का नियम नहीं है! यदि आपके विशेष उपयोग का मामला अलग है तो
आप इस नियम (गुरुत्वाकर्षण के नियम के विपरीत) को तोड़ सकते हैं !
प्रो टिप: हमेशा एक HDD की शुरुआत में SWAP आवंटित करें क्योंकि डिस्क के अंदर सिर को कम स्थानांतरित करने की आवश्यकता होती है।
हां: SSDs पर, यह वास्तव में किसी भी अधिक मायने नहीं रखता है जहां आप स्वैप क्षेत्र का पता लगाते हैं क्योंकि वे चलते हुए सिर के बजाय क्वांटम-टनलिंग का उपयोग करते हैं और आधुनिक SSDs क्वांटम क्षरण को रोकने के लिए अपनी सभी मेमोरी कोशिकाओं (यहां तक कि खाली स्थान) का उपयोग करते हैं।
परीक्षण कैसे करें यदि आपके स्वैप का उपयोग "सामान्य" नियम से अलग है:
बस निष्पादित करें:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
जो आपको बाहर चलने वाले सभी कार्यक्रमों की एक सूची देगा (शीर्ष पर सबसे स्वैप स्थान का उपयोग करने वाले के साथ)
यदि आप अधिक उपयोग कर रहे हैं तो कुछ केबी: अधिक से अधिक आकार दें तो न्यूनतम, अन्यथा, परेशान न करें ...
यदि आप सर्वर पर हैं, तो अभी पढ़ना बंद करें: आप सभी सेट हो गए हैं!
यदि आप एक डेस्कटॉप / लैपटॉप क्लाइंट (सर्वर नहीं) पर हैं, तो आप चाहते हैं कि आपका GUI यथासंभव संवेदनशील हो और जब आप वास्तव में हो तो केवल स्वैप करें । उबंटू को सर्वर के उपयोग के लिए जल्दी स्वैप करने के लिए अनुकूलित किया गया है, लेकिन अपने क्लाइंट पर आप संपादन करना चाहते हैं कि विशाल 250 मेगा-पिक्सेल कच्ची तस्वीरgimp
swappiness
शीघ्रता से हो , इसलिए आपके 10 पर सेट करने से कर्नेल बहुत जल्दी स्वैप हो जाएगा, जबकि यह सुनिश्चित नहीं करता है ' टी स्वैप बहुत देर हो चुकी है:
यदि आपके पास एक sysctl.conf
फ़ाइल है,
sudo nano /etc/sysctl.conf
या
यदि आपके पास कोई sysctl.d
निर्देशिका है लेकिन कोई sysctl.conf
फ़ाइल नहीं है, तो एक नई फ़ाइल बनाएं:
sudo nano /etc/sysctl.d/35_swap.conf
और दोनों मामलों में जोड़ें:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
फ़ाइल के अंत में, फ़ाइल ( Ctrl+ नैनो में XY+ Enter) को सहेजें और निष्पादित करें:
sysctl --system
पैरामीटर को पुनः लोड करने के लिए या विंडो $ एप्रोच और रीबूट लेने के लिए ... :-)