−25%

Windows के सालाना भुगतान पर, 31 अक्टूबर तक। प्लान देखें

EQVPS

Linux VPS पर स्वैप फ़ाइल कैसे जोड़ें

पाँच कमांड में स्वैप फ़ाइल बनाएँ, इसे रीबूट के बाद भी बनाए रखें और swappiness समायोजित करें, साथ में यह कि कितना स्वैप जोड़ें और कब असली हल ज़्यादा RAM है।

छोटे सर्वरों की मेमोरी सबसे बुरे समय पर ख़त्म होती है: किसी apt upgrade, किसी Docker बिल्ड या रात के बैकअप के दौरान। स्वैप के बिना कर्नेल का OOM killer एक प्रक्रिया चुनकर उसे मार देता है, अक्सर आपका डेटाबेस। स्वैप फ़ाइल एक सस्ती सीट बेल्ट है जो इन उछालों को निकलने का रास्ता देती है। पाँच कमांड लगते हैं।

1. देखें कि आपके पास क्या है

swapon --show
free -h

अगर swapon --show कुछ नहीं दिखाता, तो अभी कोई स्वैप नहीं है।

2. स्वैप फ़ाइल बनाएँ

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

chmod 600 ज़रूरी है: स्वैप में मेमोरी में रही किसी भी चीज़ के टुकड़े हो सकते हैं, गोपनीय जानकारी भी, इसलिए इसे सिर्फ़ root पढ़ सके। अगर fallocate “operation not supported” के साथ विफल हो, तो इसके बजाय dd इस्तेमाल करें:

dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

3. इसे स्थायी बनाएँ

इस चरण के बिना रीबूट पर स्वैप ग़ायब हो जाता है:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

4. swappiness समायोजित करें

कर्नेल से कहें कि वह RAM को प्राथमिकता दे और मुख्य रूप से दबाव में ही स्वैप इस्तेमाल करे:

echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system

5. पुष्टि करें

swapon --show
free -h

आपको 2 GB का स्वैप डिवाइस दिखना चाहिए, और cat /proc/sys/vm/swappiness को 10 दिखाना चाहिए।

कितना बड़ा?

स्वैप का आकार “RAM का दोगुना” न रखें। सर्वर पर स्वैप छोटे उछालों को सोखने के लिए है, न कि ऐसे काम चलाने के लिए जो मेमोरी में समाते ही नहीं।

जब स्वैप जवाब नहीं है

कुछ दिनों तक इस पर नज़र रखें:

vmstat 5

si और so कॉलम दिखाते हैं कि प्रति सेकंड कितने पेज स्वैप से पढ़े और स्वैप में लिखे गए। कभी-कभार की गतिविधि सामान्य है। लगातार शून्य से ऊपर के मान का मतलब है कि सर्वर में मेमोरी कम है और सब कुछ डिस्क का इंतज़ार कर रहा है। उस समय हल ज़्यादा RAM है: देखें VPS को कितनी RAM चाहिए। EQVPS पर आप बिना दोबारा इंस्टॉल किए बड़े प्लान पर जा सकते हैं; आपका डेटा वहीं रहता है।

संबंधित

सामान्य प्रश्न

मुझे कितना स्वैप जोड़ना चाहिए?

1–2 GB RAM वाले सर्वर पर 1–2 GB की स्वैप फ़ाइल अच्छा डिफ़ॉल्ट है। बड़े सर्वरों पर भी सुरक्षा जाल के रूप में 1–2 GB काफ़ी है: “RAM का दोगुना” वाला नियम 256 MB मशीनों के ज़माने का है।

क्या स्वैप से मेरा सर्वर तेज़ होगा?

नहीं। स्वैप सिर्फ़ तब क्रैश रोकता है जब मेमोरी पल भर के लिए ख़त्म हो जाए: पैकेज अपडेट, Docker बिल्ड, बैकअप। डिस्क पर रखे मेमोरी पेज RAM से हज़ारों गुना धीमे होते हैं। अगर सर्वर लगातार स्वैप इस्तेमाल करता है, तो उसे ज़्यादा RAM चाहिए।

swappiness क्या करता है?

यह तय करता है कि कर्नेल खाली पड़ी मेमोरी को कितनी तत्परता से स्वैप में भेजे। डिफ़ॉल्ट 60 यह काफ़ी जल्दी करता है; 10 कर्नेल को चीज़ें RAM में रखने और मुख्य रूप से असली दबाव पर स्वैप इस्तेमाल करने को कहता है, जो ज़्यादातर सर्वरों के लिए ठीक है।

पार्टीशन के बजाय स्वैप फ़ाइल क्यों?

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

बाद में स्वैप कैसे हटाऊँ?

'swapoff /swapfile' चलाएँ, /etc/fstab से /swapfile वाली पंक्ति हटाएँ, फिर 'rm /swapfile' चलाएँ।

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।