VPS की सुरक्षित रखी गई मेमोरी को मुक्त करें

लिनक्स सिस्टम डिफ़ॉल्ट रूप से kdump के लिए एक मेमोरी ब्लॉक आरक्षित करता है, इस मेमोरी का आकार crashkernel पैरामीटर के माध्यम से सेट किया जा सकता है, कई ऐप डेवलपर्स आमतौर पर कर्नेल क्रैश नहीं करते हैं, इस मेमोरी को मुक्त करने के लिए /etc/default/grub फ़ाइल को संशोधित करके किया जा सकता है।

यदि kdump की आवश्यकता नहीं है, तो crashkernel पैरामीटर को 0M-1G:0M,1G-4G:0M,4G-128G:0M,128G-:512M पर सेट किया जा सकता है, इस तरह एक मेमोरी ब्लॉक मुक्त किया जा सकता है।

जांचने का तरीका: cat /etc/default/grub

डिफ़ॉल्ट मान निम्नलिखित हैं:

GRUB_CMDLINE_LINUX=" vga=792 console=tty0 console=ttyS0,115200n8 net.ifnames=0 noibrs nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 iommu=pt crashkernel=0M-1G:0M,1G-4G:192M,4G-128G:384M,128G-:512M crash_kexec_post_notifiers=1"

crashkernel फ़ील्ड की व्याख्या करें, इसका अर्थ है कि 0-1G मेमोरी वाली मशीन 0M मेमोरी आरक्षित करती है, 1-4G मेमोरी वाली मशीन 192M मेमोरी आरक्षित करती है, 4-128G मेमोरी वाली मशीन 384M मेमोरी आरक्षित करती है, 128G से अधिक मेमोरी वाली मशीन 512M मेमोरी आरक्षित करती है।

1G मेमोरी वाली मशीन 1-4G बैंड में ऊपर की ओर विभाजित होती है, 192MB मेमोरी को kdump के लिए आरक्षित करती है। 4G मेमोरी वाली मशीन 4-128G बैंड में ऊपर की ओर विभाजित होती है, 384MB मेमोरी को kdump के लिए आरक्षित करती है।

संशोधन का तरीका: sudo sed -i 's/crashkernel=0M-1G:0M,1G-4G:192M,4G-128G:384M,128G-:512M/crashkernel=0M-1G:0M,1G-4G:0M,4G-128G:0M,128G-:512M/' /etc/default/grub

पुनः आरंभ करने पर प्रभावी होता है: sudo update-grub && sudo reboot

नए उपयोगकर्ता सीखने के लिए आमतौर पर उपयोग किए जाने वाले 2C1G VPS के एक उदाहरण के रूप में, एक साफ़ सिस्टम के संशोधन से पहले और बाद के मेमोरी स्पेस निम्नलिखित हैं, 366MB और 562MB के अंतर को देखते हुए यह बहुत बड़ा अंतर है।

# संशोधन से पहले
root@iZj6c0otki9ho421eewyczZ:~# free
               total        used        free      shared  buff/cache   available
Mem:          707180      340772      123400        2624      358872      366408
Swap:              0           0           0

# संशोधन के बाद
root@iZj6c0otki9ho421eewyczZ:~# free
               total        used        free      shared  buff/cache   available
Mem:          903788      341656      451380        2616      251032      562132
Swap:              0           0           0

2C4G VPS के संशोधन से पहले और बाद के मेमोरी स्पेस निम्नलिखित हैं, 3.1GB और 3.5GB के अंतर।

# संशोधन से पहले
root@iZj6c1prxn78ilvd2inku1Z:~# free
               total        used        free      shared  buff/cache   available
Mem:         3512696      377672     2870944        1260      415116     3135024
Swap:              0           0           0

# संशोधन के बाद
root@iZj6c1prxn78ilvd2inku1Z:~# free
               total        used        free      shared  buff/cache   available
Mem:         3905912      374468     3408304        1252      270508     3531444
Swap:              0           0           0

kdump के बारे में अधिक जानकारी

Kdump एक कर्नेल क्रैश डंप मैकेनिज्म है, जिसका उपयोग लिनक्स सिस्टम कर्नेल क्रैश होने पर सिस्टम की मेमोरी स्थिति को कैप्चर करने के लिए किया जाता है। यह kexec तकनीक पर आधारित है, kexec एक लिनक्स कर्नेल को दूसरे लिनक्स कर्नेल को BIOS इनिशियलाइजेशन प्रक्रिया से गुज़रे बिना लॉन्च करने की अनुमति देता है, जिससे यह सुनिश्चित होता है कि सिस्टम क्रैश होने के बाद तेज़ी से एक नए कर्नेल (जिसे कैप्चर कर्नेल या crashkernel भी कहा जाता है) पर बूट कर सकता है।

जब सिस्टम घातक त्रुटि का सामना करता है और कर्नेल पैनिक को ट्रिगर करता है, तो वर्तमान चल रहे कर्नेल (जिसे मुख्य कर्नेल भी कहा जाता है) kexec का उपयोग करके पहले से तैयार किए गए कैप्चर कर्नेल को लोड करता है और सिस्टम की मेमोरी सामग्री को एक निर्दिष्ट स्थान पर सहेजता है, जैसे कि डिस्क पर एक विशेष पार्टीशन या नेटवर्क के माध्यम से दूसरी मशीन पर। इस तरह सहेजी गई मेमोरी इमेज फ़ाइल (vmcore या kdump फ़ाइल) का उपयोग बाद के विश्लेषण के लिए किया जा सकता है, जिससे डेवलपर्स या सिस्टम एडमिनिस्ट्रेटर्स क्रैश का कारण पता लगाने में मदद मिलती है।

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