在linux系统中,我们可以通过挂载tmpfs或ramfs文件系统实现对内存的访问使用。
对于一些关键业务来说,可以考虑将主要的读写进程通过Tmpfs或Ramfs文件系统放入内存中执行。
1.挂载
tmpfs
mkdir ~/tmp sudo mount -t tmpfs -o size=1024m tmpfs ~/tmp
rams
mkdir -p ~/tmp sudo mount -t ramfs -o size=1024m ramfs ~/tmp
2. 查看挂载情况
yunpeng@yunpeng-duitang:~$ df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/sda1 111G 38G 67G 36% / udev 2.9G 4.0K 2.9G 1% /dev tmpfs 1.2G 908K 1.2G 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.9G 3.7M 2.9G 1% /run/shm /dev/sda5 92G 76G 12G 87% /duitang /dev/sda6 83G 34G 45G 44% /work tmpfs 1.0G 1.0G 0 100% /home/yunpeng/tmp
3. 测试写入速度
yunpeng@yunpeng-duitang:~$ dd if=/dev/zero of=/home/yunpeng/tmp/test2 bs=1M count=400 记录了400+0 的读入 记录了400+0 的写出 419430400字节(419 MB)已复制,0.282811 秒,1.5 GB/秒
4.查看挂载结果
yunpeng@yunpeng-duitang:~$ mount -l /dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) fusectl on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) udev on /dev type devtmpfs (rw,mode=0755) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) none on /run/shm type tmpfs (rw,nosuid,nodev) /dev/sda5 on /duitang type ext4 (rw,commit=0) /dev/sda6 on /work type ext4 (rw,commit=0) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) gvfs-fuse-daemon on /home/yunpeng/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=yunpeng) tmpfs on /home/yunpeng/tmp type tmpfs (rw,size=1024m)
通过以上输出最后一行,可以查看当前挂载/mnt/ram的相关情况
通过配置/etc/fstab文件,可以实现开机挂载tmpfs或ramfs文件系统分区
5.ramfs和tmpfs的区别
-
ramfs可以动态进行容量扩展,只要不大于系统内的可用物理内存大小即可。
-
tmpfs无法进行动态扩展,只能使用挂载时指定的分区大小。
-
tmpfs使用swap或物理内存作为存储空间。
-
ramfs不能使用swap空间,只能使用物理内存空间。
6.一些注意点
tmpfs不具备持久性,重启后数据不保留,请务必注意!!!
/dev/shm/是一个设备文件,它使用就是tmpfs文件系统(注意:在Centos和Redhat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是/run/shm目录,可以使用df命令查看),因为 /dev/shm/这个目录不在硬盘上,而是在内存里,它就所谓的tmpfs。在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。
参考:
http://www.weittor.com/overview-of-ramfs-and-tmpfs-on-linux-cn.html
http://blog.csdn.net/chen3888015/article/details/7515706
http://luobeng.blogbus.com/logs/128410724.html
相关推荐
ramfs是一种轻量级的内存文件系统,专为Linux内核设计。它的全称是“Resizing Memory-based File System”,正如其名,它利用系统的物理内存来存储文件和目录,而不是像传统文件系统那样在磁盘上进行读写操作。由于...
本章将介绍Linux内核中几种不依赖于磁盘存储的文件系统类型,如tmpfs、ramfs等,并讨论它们的应用场景和技术优势。 #### 十一、扩展属性和访问控制列表(第11章) 为了增强文件的安全性和功能性,Linux内核支持在...
- **临时文件系统**:介绍了一类特殊的文件系统(如tmpfs和ramfs),它们在内存中存储数据而不在磁盘上持久化。 - **应用场景**:探讨了这些文件系统在提高系统性能和响应速度方面的优势。 #### 十一、扩展属性与...
- **特殊用途文件系统**:如tmpfs(临时文件系统)、ramfs(RAM文件系统)、rootfs(根文件系统),它们具有特定的功能或存储位置。 ### VFS架构概览 VFS的架构设计精细而复杂,主要包括以下几个方面: - **通用...
在存储栈的上端,Linux还支持一些特殊的文件系统,例如tmpfs、ramfs、procfs等。这些文件系统不存储在物理介质上,而是存在于内存中,它们的用途包括临时文件存储、进程信息提供等。 网络文件系统(NetworkFS)也是...
本文档旨在为初学者介绍嵌入式Linux的基础知识,主要内容涵盖四个方面:嵌入式Linux开发的基础知识、在Linux环境下使用C语言进行系统开发、面向嵌入式Linux的GUI系统架构及其二次开发、基于Linux OSSmartPhone的体系...
总的来说,构建基于BusyBox的Linux根文件系统涉及多个环节,包括目录结构的创建、设备文件的建立、配置文件的准备以及系统服务的配置。这个过程需要对Linux内核、文件系统以及嵌入式开发有一定的理解。完成后,这个...
- **tmpfs**、**ramfs**、**devtmpfs**、**pipefs**:这些是基于内存的文件系统,用于临时存储数据。 #### 网络存储 - **nvme**:非易失性内存标准,用于支持高速存储设备。 - **iscsi_tcp**:使用TCP/IP协议的...
2. **挂载点切换**:创建一个可写的临时文件系统,如Ramfs或tmpfs,当需要写操作时,将读写操作重定向到这个临时文件系统,然后在适当的时候将这些变化同步回Cramfs。 3. **快照和更新机制**:定期或按需创建Cramfs...