`
fp_moon
  • 浏览: 978322 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux下使用内存文件系统

阅读更多
在Linux中可以将一部分内存当作分区来使用,我们称之为RamDisk。对于一些经常被访问的文件,而它们又不会被更改,可以将它们通过RamDisk放在内存中,即可明显地提高系统的性能。当然你的内存可要足够大了。RamDisk有两种,一种可以格式化,加载,在Linux内核2.0/2.2就已经支持,其不足之处是大小固定。另一种是内核2.4才支持的,通过Ramfs或者tmpfs来实现,它们不能被格式化,但是用起来灵活,其大小随所需要的空间而增加或减少。这里主要介绍一下Ramfs和Tmpfs。

Ramfs顾名思义是内存文件系统,它工作于虚拟文件系统(VFS)层。不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。如果你的Linux已经将Ramfs编译进内核,你就可以很容易地使用Ramfs了。创建一个目录,加载Ramfs到该目录即可。

# mkdir -p /RAM1
# mount -t ramfs none /RAM1

缺省情况下,Ramfs被限制最多可使用内存大小的一半。可以通过maxsize(以kbyte为单位)选项来改变。


QUOTE:
# mkdir -p /RAM1
# mount -t ramfs none /RAM1 -o maxsize=10000
以上即创建了一个限定了最大使用内存大小为10M的ramdisk。

Tmpfs是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的ramdisk,也不同于针对物理内存的Ramfs。Tmpfs可以使用物理内存,也可以使用交换分区。在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。Tmpfs就是和虚拟内存子系统来"打交道"的,它向虚拟内存子系统请求页来存储文件,它同Linux的其它请求页的部分一样,不知道分配给自己的页是在内存中还是在交换分区中。Tmpfs同Ramfs一样,其大小也不是固定的,而是随着所需要的空间而动态的增减。使用tmpfs,首先你编译内核时得选择"虚拟内存文件系统支持(Virtual memory filesystem support)" ,然后就可以加载tmpfs文件系统了。

# mkdir -p /mnt/tmpfs
# mount tmpfs /mnt/tmpfs -t tmpfs

为了防止tmpfs使用过多的内存资源而造成系统的性能下降或死机,可以在加载时指定tmpfs文件系统大小的最大限制。

# mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m

以上创建的tmpfs文件系统就规定了其最大的大小为32M。不管是使用ramfs还是tmpfs,必须明白的是,一旦系统重启,它们中的内容将会丢失。所以那些东西可以放在内存文件系统中得根据系统的具体情况而定。

再补充一下:ramfs只会在物理内存中被创建,而tmpfs可能在物理内存中创建,也可能在交换分区中被创建。对于想利用内存的高速IO来提高效能的应用,最好是使用ramfs。对于只是想存放临时缓存的应用,最好是用tmpfs,以提前内存的利用率。
转自:http://blog.sina.com.cn/s/blog_54229ea60100034j.html
分享到:
评论

相关推荐

    Linux下一个简单的文件系统实现

    本项目名为“Linux下一个简单的文件系统实现”,其核心是一个名为XORFS(意为“或许很强大”)的自定义文件系统。这个项目的目标是让学习者了解文件系统的基本原理,并且通过实际操作来理解Linux内核中的虚拟文件...

    嵌入式linux下常见的文件系统

    RamFS是利用VFS(虚拟文件系统)自身的结构而形成的一种内存文件系统。它使用系统的RAM空间来存储数据,提供了一种快速访问文件的方式。由于完全基于内存,RamFS的速度非常快,但重启后数据会丢失,因此适用于存储...

    C语言模拟实现Linux文件系统

    C语言模拟实现Linux文件系统 1、在内存中开辟一块空间来模拟文件系统的运行,不读写硬盘。 2、面向单用户、单任务,不考虑并发,不考虑文件属主、组等概念。 3、程序开始后,初始化并接收用户输入。若输入”enter”...

    Python文件:python来查看Linux系统内存使用情况.py

    Python文件:python来查看Linux系统内存使用情况.py Python文件:python来查看Linux系统内存使用情况.py

    Linux二级文件系统模拟

    综上所述,这个项目涉及到Linux操作系统中的高级文件系统概念,尤其是UnionFS的使用,以及如何在内存中进行模拟。同时,它还涵盖了程序初始化设置和使用Java进行文件系统模拟的编程实践。这些知识点对于理解容器技术...

    解析Linux中的VFS文件系统机制

    在Linux源代码中,每种实际的文件系统用以下的数据结构表示:struct file_system_type,这个结构体中包含文件系统的名称、flags、读取超级块的函数指针、模块所有者、下一个文件系统类型指针和超级块列表头等信息。...

    Linux下位图文件系统的设计与实现.pdf

    【Linux 下位图文件系统的设计与实现】 在 Linux 操作系统中,文件系统扮演着至关重要的角色,它负责管理和组织存储设备上的数据。随着 Linux 的不断发展和完善,用户可以通过虚拟文件系统(VFS)来实现自定义的...

    Linux上的DB2内存和文件缓存性能调优

    Linux 使用一个文件系统缓存为磁盘请求进行缓冲和读写。Linux 非常贪婪地执行这个任务,您很快就可以看到,系统中未使用/空闲的内存变得很少。可以削减分配给文件缓存的内存,并转给发出请求的进程,这会减少被缓冲...

    嵌入式Linux系统中Overlay文件系统的实现.pdf

    * Overlay文件系统的实现可以消除使用日志文件系统而引发的垃圾收集的开销和大量内存脚印对系统的影响,并且Overlay文件系统的应用并不仅局限于嵌入式产品中,其中的原文件系统不仅可以是只读设备,还可以是可读。...

    模拟LINUX文件系统及终端

    (8)copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝。 (9)del …: 删除文件:删除指定文件,不存在时给出出错信息。 (10)check:检测并恢复文件...

    Linux 创建文件系统及挂载文件系统流程详解

    在 Linux 中,文件系统可以是基于磁盘的,也可以是基于内存的。创建文件系统是指在磁盘或其他存储设备上创建一个文件系统,以便存储和管理文件和目录。挂载文件系统是指将创建的文件系统挂载到操作系统中,以便可以...

    linux 文件系统源码

    7. **ramfs**:内存文件系统,所有数据都存储在系统内存中,不持久化到磁盘。ramfs主要用于临时存储,因为速度极快,但断电或重启后数据会丢失。其源码展示了如何利用内存作为存储介质来创建文件系统。 通过深入...

    Linux获取CPU 内存信息到文件C++简单实现

    在Linux系统下将cpu、内存等信息获取并放在同一个文件中的C++源码,需要g++才能编译

    linux制作文件系统

    首先,Linux的虚拟文件系统VFS是Linux内核中一个至关重要的组成部分,它提供了一个抽象层,允许不同类型的文件系统在Linux环境下无缝集成。VFS为所有文件系统提供了统一的操作接口,使得应用程序无需关心具体使用的...

    linux 操作系统 GTK /proc文件 系统监视器

    总的来说,结合Linux的`/proc`文件系统和GTK库,我们可以创建一个强大的系统监视工具,帮助用户实时了解和分析系统资源的使用状况,对于优化系统性能和诊断问题具有很高的价值。通过学习和实践这种技术,不仅可以...

    Linux 文件系统与持久性内存介绍.doc

    总的来说,Linux文件系统和持久性内存的管理涉及硬件特性、内核机制以及特定文件系统的优化,它们共同确保了数据的高效、可靠存储和访问。理解这些概念对于管理和维护Linux系统至关重要,尤其是在处理高性能存储设备...

    jmeter在linux系统下运行及本地内存调优的方法详解

    1.在linux系统下安装跨系统传输文件工具  root用户下 根目录输入 yum -y install lrzsz 2.把apache-jmeter-4.0zip包 用rz命令上传到linux系统的根目录下 解压 3.配置jmeter环境变量 vim /etc/profile 添加 export...

    Linux虚拟文件系统对物理文件的管理

    ### Linux虚拟文件系统对物理文件的管理 #### 引言 随着嵌入式技术的不断发展,Linux作为一种广泛采用的操作系统,被越来越多的嵌入式设备所青睐。Linux的强大之处在于它能够支持多种物理文件系统,这得益于其核心...

Global site tag (gtag.js) - Google Analytics