इसके अलावा tmpfsऔर ramfs, एक और विकल्प है /dev/ram0ब्लॉक युक्ति। हाल के उबंटू संस्करणों पर, यह डिवाइस डिफ़ॉल्ट रूप से मौजूद नहीं है, लेकिन इसके माध्यम से बनाया जा सकता है modprobe brd।
यह दृष्टिकोण अधिक अनुमानित है क्योंकि यह एक वास्तविक ext4फाइल सिस्टम बनाता है और आपके द्वारा निर्दिष्ट सीमा से अधिक नहीं होता है। लेकिन यह स्थापित करने के लिए अधिक कदम उठाता है, और कम कुशलता से रैम का उपयोग करता है।
Brd कर्नेल मॉड्यूल का उपयोग करना (/ dev / ram0)
4GB RAM डिस्क बनाने और शुरू करने के लिए:
mkdir /ramdisk
modprobe brd rd_nr=1 rd_size=$((4 * 1048576))
mkfs.ext4 /dev/ram0
mount /dev/ram0 /ramdisk
rd_nrपैरामीटर निर्दिष्ट करता है कि कितने रैम डिस्क बनाने के लिए (डिफ़ॉल्ट रूप से, यह 16 बनाता है, यानी /dev/ram0के माध्यम से /dev/ram15)। rd_sizeपैरामीटर में आकार है किलोबाइट । $(( ... ))वाक्य रचना आप खोल में गणित काम करने दिया।
रैम डिस्क से निपटने के लिए, इसे अनमाउंट करें और brdकर्नेल मॉड्यूल को हटा दें :
umount /ramdisk
modprobe -r brd
अंदर एक ब्लॉक डिवाइस बनाना ramfs
वैकल्पिक रूप से, आप अंदर एक ब्लॉक डिवाइस बना सकते हैं ramfs:
mkdir /ramdisk-storage /ramdisk
mount -t ramfs ramfs /ramdisk-storage
truncate -s 4G /ramdisk-storage/ramdisk.img
mkfs.ext4 /ramdisk-storage/ramdisk.img
mount /ramdisk-storage/ramdisk.img /ramdisk
truncateआदेश पर मांग दिए गए आकार ऐसी है कि वह आरंभ नहीं हो जाता की एक खाली फ़ाइल (यानी खपत स्मृति) पैदा करता है।
रैम डिस्क से निपटने के लिए, इसे umount करें और डिस्क छवि को हटा दें:
umount /ramdisk
rm /ramdisk-storage/ramdisk.img
के साथ तुलना tmpfsऔरramfs
हालांकि tmpfsऔर ramfsएक ब्लॉक डिवाइस का उपयोग कर से अधिक प्रभावी हैं, कृपया नीचे उनकी कमियां हैं।
tmpfsडिस्क पर स्वैप कर सकते हैं। यह अधिक कुशल है, लेकिन ऐसा समय हो सकता है जब आप एक शुद्ध रैम डिस्क चाहते हैं:
- आप जिन फ़ाइलों के साथ काम कर रहे हैं वे संवेदनशील हैं (जैसे एन्क्रिप्टेड पार्टीशन से फ़ाइलें)।
- आप प्रदर्शन परीक्षण कर रहे हैं और आप डिस्क I / O को एक कारक नहीं बनाना चाहते हैं (SSD लिखना समय बहुत भिन्न हो सकता है)।
- आप एक बड़ी फ़ाइल खोल रहे हैं और आप अपना SSD नहीं पहनना चाहते हैं।
ramfsसेट करना आसान है, फ़ाइलों को हटाने के बाद एक बार फिर से स्पेस दें और रैम का अधिक कुशलता से उपयोग करें (सिस्टम फ़ाइलों को बफर नहीं करता है क्योंकि यह जानता है कि वे रैम में हैं)। लेकिन इसके अपने डाउनसाइड्स और आश्चर्य हैं:
dfउपयोगिता स्थान उपयोग रिपोर्ट नहीं करता:
root@cello-linux:~# df -h /ramdisk
Filesystem Size Used Avail Use% Mounted on
ramfs 0 0 0 - /ramdisk
कोई आकार सीमा पैरामीटर नहीं है। यदि आप रैमडिस्क में बहुत अधिक डालते हैं, तो आपका सिस्टम लटका रहेगा।
जब आप कम से कम इसकी उम्मीद करते हैं तो स्पार्स फाइलें असुरक्षित हो सकती हैं। आज सुबह, मैंने एक वीएम छवि (150 जी, लेकिन डिस्क पर उपयोग किए जाने वाले 49 जी) की नकल की ramfs(मेरे पास 128 जी रैम है)। वह काम किया। लेकिन जब मैं कॉपी किया सेramfs गंतव्य के लिए, अपने सिस्टम अनुत्तरदायी बन गया। cpउपयोगिता जाहिरा तौर पर छेद भरा पढ़ा है, लेकिन लिखने पर नहीं।
दोनों tmpfsऔर ramfsएक वास्तविक तुलना में अलग तरह व्यवहार कर सकता है ext4फाइल सिस्टम। रैम में एक ब्लॉक डिवाइस बनाना और इसे इससे ext4बचना।
अधिक गहराई से तुलना के लिए: https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
mount -o size=16G -t tmpfs none /mnt/tmpfs