使用内存文件系统

在Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk
RamDisk有三种实现方式:

· 第一种就是传统意义上的,可以格式化,然后加载。
       这在Linux内核2.0/2.2就已经支持,其不足之处是大小固定,之后不能改变。
       为了能够使用Ramdisk,我们在编译内核时须将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk的大小,默认是4096k;另一个是initrd的支持。
       如果对Ramdisk的支持已经编译进内核,我们就可以使用它了:
                     首先查看一下可用的RamDisk,使用ls /dev/ram*
                     首先创建一个目录,比如test,运行mkdir /mnt/test
                     然后对/dev/ram0 创建文件系统,运行mke2fs /dev/ram0
                     最后挂载 /dev/ram0,运行mount /dev/ram /mnt/test,就可以象对普通硬盘一样对它进行操作了。
       更详细的内容可以参考: http://www.linuxfocus.org/ChineseGB/November1999/article124.html 
                                                http://www.vanemery.com/Linux/Ramdisk/ramdisk.html


· 另两种则是内核2.4才支持的,通过Ramfs或者Tmpfs来实现:
       它们不需经过格式化,用起来灵活,其大小随所需要的空间而增加或减少。

       Ramfs顾名思义是内存文件系统,它它处于虚拟文件系统(VFS)层,而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。
       因而,它无需格式化,可以创建多个,只要内存足够,在创建时可以指定其最大能使用的内存大小。
       如果你的Linux已经将Ramfs编译进内核,你就可以很容易地使用Ramfs了。创建一个目录,加载Ramfs到该目录即可:
                  # mkdir  /testRam 
                  # mount -t ramfs none /testRAM

       缺省情况下,Ramfs被限制最多可使用内存大小的一半。可以通过maxsize(以kbyte为单位)选项来改变。 
                  # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)

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

【参考】: Linux性能调协
http://www-900.ibm.com/developerWorks/cn/linux/management/tune/index.shtml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

射频通路 隔直_2.4G射频双向功放电路的设计与制作

2.4G射频双向功放电路的设计与制作在两个或多个网络互连时,无线局域网的低功率与高频率限制了其覆盖范围,为了扩大覆盖范围,可以引入蜂窝或者微蜂窝的网络结构或者通过增大发射功率扩大覆盖半径等措施来实现。前者实现成本较高,而…

Navicat怎么看oracle作业,[数据库] Navicat for Oracle基本用法图文介绍

打开具体的T_USER_INFO.sql文件代码以下所示:/*Navicat Oracle Data TransferOracle Client Version : 11.2.0Source Server : 远程oracle链接Source Server Version : 110200Source Host : XXXSource Schema : XXXXXXTarget Server Type : ORACLETarget Server Ver…

慕课乐学python单元测试答案_中国大学慕课第三章单元测试答案_乐学软件工程免费答案...

佩戴铂金的好处有哪些人教版八年级下册思想品德全品学练考第七课第1课时财产属于谁答案白金项链变黑了怎么办,如何清洗白金的种类有哪些天津少儿医保如何结算报销?铂金和白金哪个贵,需注意什么黄金项链的保养方法有哪些佩戴铂金的好处有哪些人…

linux arp 文件,LINUX 下ARP 的查找

由于内网无法正常连接网关,远程登陆网关已无法实现。因此一切操作均在网关服务器本地进行。3.1 在服务器本地端口抓包[rootRouted-Server tmp]# tcpdump -nn -i eth1 > error.networktcpdump: listening on eth12749 packets received by filter0 packets…

Android的Recovery中font_10x10.h字库文件制作

任务是要汉化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h这个英文字库的来历,最终汉化的时候并没有自己汉字字库,用的github上现成的,但font_10x18.h来历短暂的留存在脑子里边不如记下来,这样会…

git 新建分支并切换到该分支_Git何谓分支

在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一…

linux用户恢复正常,Linux系统用户口令安全恢复方法

Linux系统用户口令安全恢复方法2007-09-07eNet&Ciweek有许多原因可能导致用户口令的遗失,这对系统管理员而言,可能不是一个问题,只要以root账号登录,再用passwd命令更改用户口令就可以了。可是,如果丢失的是root口…

A20 init.sun7i.rc 文件

如果需要在开机的时候,自动加载一些ko文件,或者通过chmod修改一些设备文件的属性,都可以再 init.sun7i.rc文件中添加insmod和chmod命令来实现。 init.sun7i.rc文件在 android4.2/out/target/product/wing-mbox230/root目录下。 但是实际操…

python 多元线性回归的系数检验 t p值_多元线性回归检验t检验(P值),F检验,R方等参数的含义...

做线性回归的时候,检验回归方程和各变量对因变量的解释参数很容易搞混乱,下面对这些参数进行一下说明:1.t检验:t检验是对单个变量系数的显著性检验 一般看p值; 如果p值小于0.05表示该自变量对因变量解释性很强。2…

linux c 内存elf,gcc加入linux ELF有什么功能?

这些大多数是在“主”程序本身之前或之后执行代码的各种方法,大多数都在crtstuff.c(https://github.com/gcc-mirror/gcc/blob/master/libgcc/crtstuff.c)中.它们存在以支持各种C类编程语言的特征,但它们也可以在C中访问.这可能似乎过于复杂,因为其中一些代表了传统的行李,还有一…

hdu 4322 最大费用流

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4322 #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> #include <queue> #include <vector> using namespace s…

es6遍历树结构并判断_ES6和ES5中数据结构的遍历

看了ES6就感觉各种数据结构的遍历方法好多好混乱&#xff0c;就写下来总结下&#xff0c;看看应用场景上有什么区别Array:ES5:(1)Array.prototype.forEach(function(item,index,array){...})(2)Array.prototype.map(function(value,index,array){...//return value,该值会被插入…

EAT/IAT Hook

标 题: EAT/IAT Hook 作 者: Y4ng 时 间: 2013-08-21 链 接: http://www.cnblogs.com/Y4ng/p/EAT_IAT_HOOK.html #include <windows.h> #include <shlwapi.h> #include <wchar.h> DWORD MyZwGetContextThread(HANDLE Thread,LPCONTEXT lpContext) {memset(l…

wireshark过滤规则

1.过 滤 IP&#xff0c;如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP2.过滤 端 口例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显示tcp.port 80tcp.port eq 2722tc…

springboot 别名不起作用_springboot之mybatis别名的设置

mybatis别名设置在具体的mapper.xml文件中&#xff0c;定义很多的statement&#xff0c;statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。一.mybatis默认支持别名别名映射的类型_bytebyte_longlong_shortshort_intint_integerint_double…

Linux 编译 libc log,在Android的源码中添加LOG

想在Opencore代码中添加打印信息&#xff0c;但是使用OpenCore自带的PVLOGGER&#xff0c;有一定的局限&#xff0c;因为只能在创建对象调用相应的ThreadLogon()后才能使用。所以不能实现在任何函数中添加。于是通过添加Log.h的方法来添加。首先转下别人的经验我试了下还是出先…

《哈佛幸福课》笔记

前言&#xff1a;幸福感是衡量人生的唯一标准&#xff0c;是所有目标的最终目标 积极心理学 第一课 什么是积极心理学 与缺乏实质内容的心理自助行动不同&#xff0c;积极心理学从学术界而来&#xff0c;有着严谨的学术内容&#xff0c;并且兼顾应用到生活的方方面面&#xff…

ubuntu修改用户名、计算机名、主目录名

今天是MPI并行程序设计这门课交作业的截止日期&#xff0c;我们寝室的张佳和刘庆的本科同学来了&#xff0c;所以他们也没有时间搞&#xff0c;我就又做一回好人吧&#xff01;帮他们搞一下&#xff01;帮他们写报告的过程中最主要的问题就是跑那个MPI的程序&#xff0c;因为我…

linux redis可视化工具,几款开源的图形化Redis客户端管理软件

Redis是一个超精简的基于内存的键值对数据库(key-value)&#xff0c;一般对并发有一定要求的应用都用其储存session&#xff0c;乃至整个数据库。 它自带一个最小化的命令行式的数据库管理工具&#xff0c;有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具…

ubuntu 修改用户名和计算机名称

修改用户名 sudo chfn -f 新名字 原名字 sudo usermod -l 新名字 -d /home/新名字 -m 原名字 sudo groupmod -n 新名字 原名字 修改计算机名 /etc/hosts /etc/hostname