ramfs在内存中创建了一个文件系统,使用和Linux文件系统的cache一样的机制及空间。 在linux下运行free命令可以看到当前内存的使用情况,
可以看到一共15G内存,其中3G是系统cache,这个空间会被linux用来缓存最近访问的文件,下次再访问的时候就不需要从磁盘读取了。ramfs使用相同的空间和机制,唯一不同的是,当内存的使用超出了系统设置的上限,ramfs文件不会被移出缓冲区。
ramfs文件系统不能和基于磁盘的文件系统一样来限制它的大小,ramfs会一直使用内存空间直到耗尽,这是它的一个缺陷;另一个问题是你没法儿通过 df 命令来获取ramfs的大小,只能通过 free 命令来估计。
tmpfs是一种更加先进的RAM文件系统,你可以设置大小限制,你也可以通过 df 命令来查看使用了多少空间
首先新建一个目录,用来挂载RAM Disk
ramfs是Linux下一种基于RAM做存储的文件系统。在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率。由于ramfs的实现就相当于把RAM作为最后一层的存储,所以在ramfs中不会使用swap。你什么时候听过会把HDD上的文件swap到哪里去吗?平常说的swap都是针对内存来说的,而ramfs底层的存储是RAM,虽然不是HDD,但是在Linux看来它就跟HDD一样。但是ramfs有一个很大的缺陷就是它会吃光系统所有的内存,即使你mount的时候指定了大小,同时它也只能被root用户访问。Ramdisk/ramfs/tmpfs
Ramdisk:
大小固定,默认4096k。在编译内核的时候需将block device 中的Ramdisk支持选项加上。
如果对Ramdisk的支持已经编译进内核,可以如下方式使用:
查看可用的Ramdisk,使用 ls /dev/ram*
创建一个目录 mkdir /mnt/test
对/dev/ram0创建文件系统 mke2fs /dev/ram0
最后将创建的文件系统挂载到该目录下
mount /dev/ram /mnt/test
ramfs:
大小可以根据需要进行增加和减少。
处于虚拟文件系统层VFS,不像ramdisk基于虚拟在内存中的其他文件系统(ex2fs)。
如果对Ramdisk的支持已经编译进内核,可以如下方式使用:
创建目录,加载ramfs到该目录
mkdir /testRam
mount -t ramfs none /testRam
缺省的情况下,被限制为最多使用内存大小的一半
也可通过maxsize进行制定
eg:创建一个限定最大使用内存2M的ramfs
mount -t ramfs none /test Ram -o maxsize=2000
tmpfs:
不同于传统的用块设备block device来进行实现的Ramdisk,
也不同于针对物理内存的ramfs
tmpfs既可以使用物理内存,也可以使用交换分区。
大小不固定,可以根据需要进行增加或减少
使用tmpfs需要编译内核时选择
虚拟内存文件系统支持(Virtual memory filesystem support)”
加载tmpfs:
mkdir -p /mnt/tmpfs
mount tmpfs /mnt/tmpfs -t tmpfs
指定大小
mount tmpfs /mnt/tmpfs -t tmpfs -o size=32M
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)