`
san_yun
  • 浏览: 2693277 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

基于tmpfs或ramfs把linux把目录映射为内存

 
阅读更多

在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

分享到:
评论

相关推荐

    file-mmu.rar_ramfs

    ramfs是一种轻量级的内存文件系统,专为Linux内核设计。它的全称是“Resizing Memory-based File System”,正如其名,它利用系统的物理内存来存储文件和目录,而不是像传统文件系统那样在磁盘上进行读写操作。由于...

    Professional Linux Kernel Architecture

    本章将介绍Linux内核中几种不依赖于磁盘存储的文件系统类型,如tmpfs、ramfs等,并讨论它们的应用场景和技术优势。 #### 十一、扩展属性和访问控制列表(第11章) 为了增强文件的安全性和功能性,Linux内核支持在...

    linux architecture

    - **临时文件系统**:介绍了一类特殊的文件系统(如tmpfs和ramfs),它们在内存中存储数据而不在磁盘上持久化。 - **应用场景**:探讨了这些文件系统在提高系统性能和响应速度方面的优势。 #### 十一、扩展属性与...

    VFS and filesystems in Linux

    - **特殊用途文件系统**:如tmpfs(临时文件系统)、ramfs(RAM文件系统)、rootfs(根文件系统),它们具有特定的功能或存储位置。 ### VFS架构概览 VFS的架构设计精细而复杂,主要包括以下几个方面: - **通用...

    Linux-storage-stack-diagram_v4.10

    在存储栈的上端,Linux还支持一些特殊的文件系统,例如tmpfs、ramfs、procfs等。这些文件系统不存储在物理介质上,而是存在于内存中,它们的用途包括临时文件存储、进程信息提供等。 网络文件系统(NetworkFS)也是...

    嵌入式linux培训知

    本文档旨在为初学者介绍嵌入式Linux的基础知识,主要内容涵盖四个方面:嵌入式Linux开发的基础知识、在Linux环境下使用C语言进行系统开发、面向嵌入式Linux的GUI系统架构及其二次开发、基于Linux OSSmartPhone的体系...

    使用BusyBox制作linux根文件系统.pdf

    总的来说,构建基于BusyBox的Linux根文件系统涉及多个环节,包括目录结构的创建、设备文件的建立、配置文件的准备以及系统服务的配置。这个过程需要对Linux内核、文件系统以及嵌入式开发有一定的理解。完成后,这个...

    linux的IO栈应用层到存储层

    - **tmpfs**、**ramfs**、**devtmpfs**、**pipefs**:这些是基于内存的文件系统,用于临时存储数据。 #### 网络存储 - **nvme**:非易失性内存标准,用于支持高速存储设备。 - **iscsi_tcp**:使用TCP/IP协议的...

    嵌入式系统/ARM技术中的基于嵌入式Cramfs 的根文件系统配置新方法

    2. **挂载点切换**:创建一个可写的临时文件系统,如Ramfs或tmpfs,当需要写操作时,将读写操作重定向到这个临时文件系统,然后在适当的时候将这些变化同步回Cramfs。 3. **快照和更新机制**:定期或按需创建Cramfs...

Global site tag (gtag.js) - Google Analytics