छोटे सर्वरों की मेमोरी सबसे बुरे समय पर ख़त्म होती है: किसी 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 दिखाना चाहिए।
कितना बड़ा?
- 1–2 GB RAM वाला सर्वर: 1–2 GB स्वैप।
- 4 GB या उससे ज़्यादा: सुरक्षा जाल के रूप में 1–2 GB अब भी काफ़ी है।
स्वैप का आकार “RAM का दोगुना” न रखें। सर्वर पर स्वैप छोटे उछालों को सोखने के लिए है, न कि ऐसे काम चलाने के लिए जो मेमोरी में समाते ही नहीं।
जब स्वैप जवाब नहीं है
कुछ दिनों तक इस पर नज़र रखें:
vmstat 5
si और so कॉलम दिखाते हैं कि प्रति सेकंड कितने पेज स्वैप से पढ़े और स्वैप में लिखे गए। कभी-कभार की गतिविधि सामान्य है। लगातार शून्य से ऊपर के मान का मतलब है कि सर्वर में मेमोरी कम है और सब कुछ डिस्क का इंतज़ार कर रहा है। उस समय हल ज़्यादा RAM है: देखें VPS को कितनी RAM चाहिए। EQVPS पर आप बिना दोबारा इंस्टॉल किए बड़े प्लान पर जा सकते हैं; आपका डेटा वहीं रहता है।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।