अपने लिनक्स वितरण पर एक "RAMDisk" बनाएं

RAMDisk आइकन

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

गीगाबाइट ने कुछ साल पहले रैम के साथ एक हार्ड ड्राइव बनाने के बारे में सोचा था (एक RAMDisk जिसे i-RAM कहा जाता है), हार्ड ड्राइव की तुलना में बहुत तेज़ मेमोरी है, लेकिन एजिया के PhysX कार्ड के साथ भी कुछ ऐसा ही हुआ। वे वास्तव में पकड़ में नहीं आए और बाजार से गायब हो गए, और अब एसएसडी (और रैम-आधारित एसएसडी) के साथ यह और भी कम समझ में आता है। यह किस बारे में है? खैर, मूल रूप से यह डेटा को स्टोर करने के लिए रैम मेमोरी का उपयोग कर रहा है जैसे कि यह एक हार्ड ड्राइव हो, इसलिए पहुंच बहुत तेज है।

ठीक है, फिर, स्थानांतरण को तेज़ करने और अपनी इच्छित निर्देशिकाओं, फ़ाइलों या प्रोग्रामों तक पहुँचने के लिए आपके पास i-RAM या SSD, या ऐसी किसी चीज़ की आवश्यकता नहीं है। उसके लिए आप कर सकते हैं अपने लिनक्स डिस्ट्रो पर एक रैमडिस्क बनाएं. एकमात्र आवश्यकता यह है कि पर्याप्त रैम, >4जीबी अनुशंसित, ताकि इसका थोड़ा सा हिस्सा अल्ट्रा-फास्ट "हार्ड ड्राइव" के रूप में उपयोग करने के लिए आरक्षित किया जा सके। कुछ-कुछ वैसा ही जैसा लैपटॉप के लिए कुछ जीपीयू ने शेयर मेमोरी के साथ किया था, लेकिन इस मामले में आपके डेटा के लिए।

इस मेमोरी को बनाने के लिए, आपको अपने पास मौजूद मेमोरी की गणना करनी चाहिए, क्योंकि यदि आप इसका पूरा या एक बड़ा हिस्सा उपयोग करते हैं तो आपके पास उन उद्देश्यों के लिए रैम खत्म हो जाएगी जिसके लिए इसे बनाया गया था और यह बेवकूफी होगी। उदाहरण के लिए, यदि आपके पास 8GB RAM है, तो आप RAMDisk के लिए 2GB ले सकते हैं। मैं दोहराता हूं, आपकी बात यह है कि आपके पास अधिक रैम है, यदि आपके पास 2 जीबी या 4 जीबी है तो यह इसके लायक नहीं हो सकता है... (आकार को "आकार" में निर्दिष्ट करना याद रखें, मेरे उदाहरण में मैंने 1024 एमबी का विकल्प चुना है, यानी, 1 जीबी, या आप इसे जीबी में निर्दिष्ट करने के लिए "एम" के बजाय "जी" का भी उपयोग कर सकते हैं) एक बार जब आप यह जान लेते हैं, तो हम इस पर काम करना शुरू कर देते हैं निम्नलिखित कदम आपके टर्मिनल से:

mkdir /tmp/ramdisk

mount -t tmpfs none /tmp/randisk -o size=1024M

अब आपकी रैम में 1 जीबी आरक्षित है, इसलिए आप हमारे द्वारा बनाई गई रैमडिस्क निर्देशिका में जो चाहें जोड़ सकते हैं। प्रदर्शन परीक्षण करें और आप देखेंगे कि कैसे यह तेज है इसमें आपके पास सब कुछ है... यदि आप चाहें, तो आप अपनी रैम में tmpfs से भिन्न फ़ाइल सिस्टम, जैसे ext4 या ramfs के साथ विभाजन बना सकते हैं।

और यदि आप चाहते हैं कि असेंबली इनपुट बना रहे... सावधान! यदि आप पीसी बंद कर देते हैं या इसे पुनरारंभ करते हैं तो जो डेटा आप यहां सहेजते हैं वह खो जाएगा, लेकिन प्रविष्टि जारी रहेगीइसलिए आपको प्रत्येक शुरुआत के साथ विभाजन बनाने की ज़रूरत नहीं है इसे विभाजन तालिका (fstab) में जोड़ने के लिए निम्नलिखित ट्रिक का उपयोग करें ताकि यह स्वचालित रूप से बन जाए (प्रविष्टि को संपादित करने के लिए अपने पसंदीदा टेक्स्ट संपादक का उपयोग करें: vi, nano, gedit…):

gedit /etc/fstab

Y en el fichero de texto que se abre crea la siguiente entrada sin comillas "tmpfs /mnt/ramdisk tmpfs nodev, nosuid, noexec, nodiratime, size=1024M 0 0"

महत्वपूर्ण: याद रखें कि जब आप पुनरारंभ करेंगे या बंद करेंगे तो आपका डेटा गायब हो जाएगा कंप्यूटर, चूँकि RAM एक अस्थिर मेमोरी है। इसलिए जो भी आप रखना चाहते हैं उसकी एक कॉपी हार्ड ड्राइव पार्टीशन में बना लें.


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   Mauricio कहा

    मेरा एक प्रश्न है, एक बार जब हम उपकरण बंद कर देंगे, तो क्या डेटा मेमोरी में बना रहेगा? मैं ऐसा इसलिए कह रहा हूं क्योंकि रैम अस्थिर है। यदि आप मुझे यह समझा सकें तो मैं इसकी सराहना करूंगा।

    1.    इसहाक पे कहा

      नमस्कार,

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

      चीयर्स और आशा है कि मैंने मदद की। धन्यवाद!!!

      1.    Mauricio कहा

        मैं देख रहा था कि ऐसे प्रोग्राम हैं जो यह विभाजन करते हैं। ये प्रोग्राम जो करते हैं वह रैम में मौजूद डेटा की हार्ड डिस्क पर एक छवि बनाते हैं ताकि जब हम पुनरारंभ करें तो यह खो न जाए। फिर जब आप सिस्टम शुरू करते हैं, जैसा कि मैं इसे समझता हूं, हार्ड ड्राइव पर सहेजा गया डेटा रैम में डाल दिया जाता है ताकि हम इसे फिर से उपयोग कर सकें। नोट के लिए और शीघ्र प्रतिक्रिया देने के लिए धन्यवाद! अभिवादन!

  2.   लियोपोल्डो कैंटिलो कहा

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

  3.   सुल्तानोविच कहा

    यह केवल एफएस का विवरण देने पर काम कर सकता है। मेरे परीक्षणों में इसने केवल इस प्रकार काम किया है:

    माउंट -t tmpfs tmpfs /tmp/ramdisk -o आकार=300m

  4.   इस्माइल कहा

    अविश्वसनीय, वह भव्यता जो GNU/LINUX के साथ की जा सकती है। :)

  5.   जिमी ओलानो कहा

    हम "tmp" विभाजन के लिए उस RAMDisk का उपयोग कैसे करें?

    यदि मैं कर सकता, तो मुझे कोड का उपयोग करना होगा, मैं कोड के बारे में नहीं पूछ रहा हूं। मैं विषय की व्यावहारिकता के बारे में पूछता हूं, इसका उपयोग करें। मैं ध्यान देता हूं कि डेटाबेस के लिए, अगर मुझे सही से याद है, तो रैम मेमोरी में डेटाबेस तालिकाओं का समर्थन करने का विकल्प पहले से ही मौजूद है, उदाहरण: https://dev.mysql.com/doc /refman/5.5/en/ स्टोरेज-इंजन -सेटिंग। एचटीएमएल

  6.   गुमनाम कहा

    यदि आप भाग्यशाली हैं और पिछले 20 वर्षों से आपके पास हैं तो आपके पास 64GiB RAM होगी और इस प्रकार आप वर्चुअलबॉक्स (या किसी अन्य वर्चुअल मशीन) की वर्चुअल हार्ड डिस्क फ़ाइल को RAM में कॉपी करने में सक्षम होंगे; यह मानते हुए कि यह फ़ाइल 48GiB से अधिक नहीं लेती है (लिनक्स और वर्चुअल मशीन के लिए पर्याप्त खाली रैम छोड़ने के लिए)। इस प्रकार वर्चुअल मशीन उड़ जाती है, और यदि आप भी चाहते हैं कि वर्चुअल मशीन में परिवर्तन (अपरिवर्तनीयता) खो जाए तो आपको मशीन की वर्चुअल हार्ड डिस्क को अपरिवर्तनीय बनाने में प्रदर्शन खोने की आवश्यकता नहीं होगी, क्योंकि इसे शुरू करने से पहले आप कॉपी कर लेते हैं इसे एनवीएमई/एसएसडी/एचडीडी से रैम तक और फिर बंद करने पर रैम में जो कुछ भी है वह खो जाता है (बस इस मामले में जो वांछित है वह अपरिवर्तनीयता चाहता है)।

    इस प्रकार, इतनी अधिक रैम के साथ आप हार्ड डिस्क छवि को गैर-अपरिवर्तनीय और निश्चित आकार का बना सकते हैं, पहुंच में अधिकतम संभव प्रदर्शन प्राप्त कर सकते हैं, यह इस तथ्य के साथ कि हार्ड डिस्क रैम में होगी, आभासी मशीनों को संभालने के दौरान वास्तविक प्रसन्नता होती है (एक समय में केवल एक बूट)।

    जब आप वर्चुअल मशीन का उपयोग समाप्त कर लेते हैं, तो आप वर्चुअल हार्ड डिस्क की स्थिति को संरक्षित करना चाहते हैं, क्योंकि इसे RAM से NVMe/SSD/HDD में कॉपी किया जाता है।

    मैंने देखा है कि पहले से ही कुछ NVMe हैं जो 5GiB/s से थोड़ी अधिक गति से पढ़ने में सक्षम हैं (हाँ, पढ़ने में प्रति सेकंड पाँच गीगाबाइट) और केवल एक का उपयोग करने पर (RAID0 या समान में यह और भी तेज़ होगा), किस लिए इससे RAM में कॉपी करने में 48GiB वर्चुअल हार्ड डिस्क छवि को केवल दस सेकंड लगते हैं, ओले!
    दूसरी ओर, विपरीत प्रक्रिया करते समय (रैम से एनवीएमई तक) जो मैंने अब तक देखा है वह लेखन में 3GiB/s से थोड़ा अधिक है (हाँ, लेखन में प्रति सेकंड तीन गीगाबाइट), इसलिए छवि को सहेजना RAM से NVMe तक 48GiB वर्चुअल हार्ड ड्राइव में केवल अठारह सेकंड लगते हैं, फिर से एक बड़ा समय!

    हमारे पास Linux के साथ सबसे तेज़ NVMe और 64GiB RAM और उदाहरण के लिए, Windows 10 के साथ एक वर्चुअल मशीन होने वाली है, यह काफी आश्चर्यजनक है अगर RAM का उपयोग वर्चुअल मशीन की हार्ड डिस्क को रखने के लिए किया जाता है।

    और अब लिनक्स के लिए छोटा सा उपहार... पहले से ही "रामरूट" नामक एक पैकेज मौजूद है (कम से कम यह आर्क-आधारित वितरण के लिए लगता है) जो बूट के दौरान पूरे लिनक्स सिस्टम रूट को रैम में कॉपी करने और रैम से बूट करना जारी रखने के लिए जिम्मेदार है। , जिसके साथ हम अपने द्वारा उपयोग किए जा रहे लिनक्स पर अपरिवर्तनीयता भी प्राप्त करते हैं, यह उल्लेख करने की आवश्यकता नहीं है कि यह रैम से चलेगा, बूट समय को कुछ हद तक बढ़ाने की कीमत पर।

    यदि इसे पढ़ने वाला व्यक्ति सीडी/यूएसबी से बूट करने योग्य लिनक्स डिस्ट्रोज़ को जानता है जिन्हें स्टार्टअप के दौरान रैम में कॉपी किया जाता है (जैसे कि SystemRescueCD, आदि), तो उन्हें इसके द्वारा प्रदान किए जाने वाले लाभों के बारे में पता चल जाएगा: यह हमेशा एक ही तरह से शुरू होता है, यह हमेशा उतनी ही तेजी से चलता है जैसा कि हो सकता है क्योंकि सब कुछ रैम में है, स्टार्टअप के दौरान या लिनक्स के उपयोग के दौरान भौतिक डिस्क पर कुछ भी नहीं लिखा जाता है (एसएसडी के जीवन को बढ़ाने के लिए कुछ बहुत उपयोगी है, व्यक्तिगत रूप से एक महीने से भी कम समय में और एक टेराबाइट से भी कम समय में कुछ लिखा जाता है) SSDs ने मुझे पहले ही काम पर छोड़ दिया है, विशेष रूप से KingDian ब्रांड के 120GB), सिवाय स्पष्ट रूप से अगर हम पढ़ने और लिखने में कुछ माउंट करते हैं और वहां कुछ सहेजते हैं, इसे वर्चुअल मशीन के साथ जोड़ते हैं, तो सिस्टम डिस्क एक्सेस में 'उड़ जाता है', क्योंकि वे सभी जाते हैं रैम.

    रैम में सभी लिनक्स होने से एसएसडी और एनवीएमई का उपयोगी जीवन काफी बढ़ जाता है, क्योंकि बूट के दौरान उनमें कुछ भी या लगभग कुछ भी नहीं लिखा जाता है और एक बार बूट होने के बाद कुछ भी नहीं लिखा जाता है जब तक कि हम इसे स्वयं नहीं करते हैं।

    मेरे परीक्षण 7GiB DDR2700 4.35MHz और NVidia 8 Ti 16GiB ग्राफ़िक्स के साथ Ryzen 64 4X (3200 कोर और 1050 थ्रेड के साथ 4GHz) पर रहे हैं।

    ध्यान दें: ऐसे मदरबोर्ड हैं जो 1TiB रैम और 64 थ्रेड वाले माइक्रो जैसे थ्रेडरिपर 2 आदि का भी समर्थन करते हैं।

  7.   मार्कोस कहा

    आपकी टिप्पणी बहुत दिलचस्प है, लेकिन हमें आवश्यक रैम के बारे में भी अतिशयोक्ति नहीं करनी चाहिए: मेरे पास विंडोज 10 की एक वीडीआई छवि है जिसका वजन केवल 13 जीबी है, 14 जीबी रैम के साथ यह पूरी आसानी से काम करेगा।

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

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

    "ऐसे मदरबोर्ड हैं जो 1TiB रैम और 64 थ्रेड वाले माइक्रो जैसे थ्रेडरिपर 2 आदि का भी समर्थन करते हैं।"

    हाँ, और रैक जो अभी भी बहुत कुछ स्वीकार करते हैं, लेकिन पॉट को xD जाने न दें। आइए पृथ्वी ग्रह पर वापस जाएँ जहाँ लोग मुश्किल से €800 का उपकरण खरीद सकते हैं...

    नमस्ते.

  8.   मार्कोस कहा

    "मेरे पास विंडोज 10 की एक वीडीआई छवि है जिसका वजन केवल 13 जीबी है, 14 जीबी रैम के साथ यह पूरी तरह से काम करेगा।"
    क्षमा करें, मेरा मतलब 24 जीबी से था। क्या मेरी उंगली अगली कुंजी पर गयी?