นอกจากนี้tmpfs
และramfs
ตัวเลือกอื่นคือ/dev/ram0
อุปกรณ์บล็อก ในรุ่นอูบุนตูที่ผ่านมาอุปกรณ์นี้ไม่ได้อยู่โดยค่าเริ่มต้น modprobe brd
แต่สามารถสร้างขึ้นผ่านทาง
วิธีการนี้สามารถคาดเดาได้มากขึ้นเนื่องจากสร้างext4
ระบบไฟล์จริงและไม่เกินขีด จำกัด ที่คุณระบุ แต่ต้องใช้ขั้นตอนเพิ่มเติมในการตั้งค่าและใช้ RAM อย่างมีประสิทธิภาพน้อยลง
การใช้โมดูลเคอร์เนล brd (/ dev / ram0)
วิธีสร้างและเตรียมใช้งานดิสก์ RAM 4GB:
mkdir /ramdisk
modprobe brd rd_nr=1 rd_size=$((4 * 1048576))
mkfs.ext4 /dev/ram0
mount /dev/ram0 /ramdisk
rd_nr
พารามิเตอร์ระบุว่าดิสก์ RAM มากมายที่จะสร้าง (โดยค่าเริ่มต้นจะสร้าง 16 คือ/dev/ram0
ผ่าน/dev/ram15
) rd_size
พารามิเตอร์ขนาดกิโลไบต์ $(( ... ))
ไวยากรณ์ช่วยให้คุณทำเลขคณิตในเปลือก
ในการยกเลิกการจัดสรรดิสก์ RAM ให้ถอนการติดตั้งแล้วลบ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
คำสั่งสร้างไฟล์ที่ว่างเปล่าของขนาดที่กำหนดดังกล่าวว่าจะเริ่มต้นได้ (เช่นกินหน่วยความจำ) ตามความต้องการ
ในการยกเลิกการจัดสรรดิสก์ RAM ให้ถอนติดตั้งแล้วลบอิมเมจดิสก์:
umount /ramdisk
rm /ramdisk-storage/ramdisk.img
เปรียบเทียบกับtmpfs
และramfs
แม้ว่าtmpfs
และramfs
จะมีประสิทธิภาพมากกว่าการใช้อุปกรณ์บล็อกด้านล่างนี้เป็นข้อเสียบางประการ
tmpfs
อาจสลับไปที่ดิสก์ มีประสิทธิภาพมากขึ้น แต่อาจมีบางครั้งที่คุณต้องการดิสก์ RAM ที่แท้จริง:
- ไฟล์ที่คุณกำลังทำงานมีความละเอียดอ่อน (เช่นไฟล์จากพาร์ติชันที่เข้ารหัส)
- คุณกำลังทำการทดสอบประสิทธิภาพและคุณไม่ต้องการให้ดิสก์ I / O เป็นปัจจัย (เวลาในการเขียน SSD อาจแตกต่างกันมาก)
- คุณกำลังคลายไฟล์ขนาดใหญ่และคุณไม่ต้องการทำให้ SSD ของคุณเสื่อมสภาพ
ramfs
ติดตั้งง่ายกู้คืนพื้นที่เมื่อคุณลบไฟล์และใช้ RAM ได้อย่างมีประสิทธิภาพ (ระบบไม่บัฟเฟอร์ไฟล์เพราะรู้ว่าอยู่ใน RAM) แต่มันมีข้อเสียและความประหลาดใจของตัวเอง:
df
ยูทิลิตี้ไม่รายงานการใช้พื้นที่:
root@cello-linux:~# df -h /ramdisk
Filesystem Size Used Avail Use% Mounted on
ramfs 0 0 0 - /ramdisk
ไม่มีพารามิเตอร์ จำกัด ขนาด หากคุณใส่ ramdisk มากเกินไประบบของคุณจะหยุดทำงาน
ไฟล์ที่กระจัดกระจายอาจไม่กระจัดกระจายเมื่อคุณคาดหวังน้อยที่สุด เช้านี้ฉันคัดลอกอิมเมจ VM (150G แต่ 49G ใช้บนดิสก์) ไปยังramfs
(ฉันมี 128G of RAM) ที่ได้ผล แต่เมื่อผมคัดลอกจากramfs
ไปยังปลายทางระบบของฉันกลายเป็นไม่ตอบสนอง cp
ยูทิลิตี้ที่เห็นได้ชัดเต็มไปหลุมบนอ่านแต่ไม่ได้อยู่ในการเขียน
ทั้งtmpfs
และramfs
อาจทำงานแตกต่างจากext4
ระบบไฟล์จริง การสร้างอุปกรณ์บล็อกใน RAM และเริ่มต้นด้วยext4
หลีกเลี่ยงสิ่งนี้
สำหรับการเปรียบเทียบเชิงลึกเพิ่มเติม: https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
mount -o size=16G -t tmpfs none /mnt/tmpfs