在linux中使用ramdisk文件系统 天高地厚

摘要:
首先,RamDiskRam:内存,磁盘:磁盘。在Linux中,一些内存可以用作分区,称为RamDisk。如果您需要高计算速度,可以增加内存并使用ramdisk技术。因此,在Web服务器上构建RamDisk将大大提高网络读取速度。2.如何使用RamDisk格式化RamDisk并将其添加到目录中。这将列出可用的RAM磁盘。除了格式化操作,这些ramdisk不会抢占内存。下面是一个使用ramdisk的示例。
一 什么是RamDisk
Ram:内存,Disk:磁盘,在Linux中可以将一部分内存当作分区来使用,称之为RamDisk。对于一些经常被访问、并且不会被更改的文件,可以将它们通过RamDisk放在内存中,能够明显地提高系统性能。RamDisk工作于虚拟文件系统(VFS)层,不能格式化,但可以创建多个RamDisk。虽然现在硬盘价钱越来越便宜,但对于一些我们想让其访问速度很高的情况下,RamDisk还是很好用的。
如果对计算速度要求很高,可以通过增加内存来实现,使用ramdisk技术。一个A RamDisk就是把内存假设为一个硬盘驱动器,并且在它的上面存储文件。假设有几个文件要频繁的使用,如果将它们加到内存当中,程序运行速度会大幅度提高,因为内存的读写速度远高于硬盘。划出部分内存提高整体性能,不亚于更换新的CPU。像Web服务器这样的计算机,需要大量读取和交换特定的文件。因此,在Web服务器上建立RamDisk会大大提高网络读取速度。
 
二 如何使用RamDisk
格式化一个ramdisk并把他加到一个目录上。列出所有可用的ramdisk用“ls -al /dev/ram*”。这就会列出你现有可用的ramdisk。这些ramdisk并不抢夺内存,除非进行格式化的一类操作。这里有一个使用ramdisk的例子。
# create a mount point:
mkdir /tmp/ramdisk0
# create a filesystem:
mke2fs /dev/ram0
# mount the ramdisk:
mount /dev/ram0 /tmp/ramdisk0
这三个命令将为ramdisk创建一个目录,格式化ramdisk(创建文件系统),并且加载这个ramdisk到"/tmp/ramdisk0". 现在你可以将这个目录看成一个虚拟的分区。使用它就象使用其它的目录一样。
如果对ramdisk的格式化失败,那就是你的内核不支持ramdisk。其内核配置选项是 CONFIG_BLK_DEV_RAM .
ramdisk的默认大小是 4Mb=4096 blocks. 在你进行mke2fs的时候你可以看到你的ramdisk的大小。mke2fs /dev/ram0 将产生类适于以下的信息:
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
执行df -k /dev/ram0 你实际用了多少空间:
>df -k /dev/ram0
Filesystem   1k-blocks   Used Available Use% Mounted on
/dev/ram0         3963     13       3746    0% /tmp/ramdisk0
那么麻烦是什么呢?在系统重新启动的时候,将刷新这个区域。不要将任何没有拷贝的数据放在这个区域。如果你对这个目录进行了修改,并且需要保留这些修改,采取一些办法进行备份。
 
三改变RamDisks 的大小
要想使用RamDisk你必须或是得到内核的支持或是以模块的形式将他加载到系统中。其中内核的配置选项是 CONFIG_BLK_DEV_RAM . 把ramdisk编译成一个可加载的模块的好处是你可以在加载是重新确定ramdisk的大小。
第一个办法。在lilo.conf文件中加入:
ramdisk_size=10000 (or ramdisk=10000 for old kernels)
这样在你使用lilo命令和重新启动计算机之后,ramdisk的默认大小将会是10M。这是一个/etc/lilo.conf文件的例子:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
label=linux
root=/dev/hda2
read-only
ramdisk_size=10000
确切的说,我只是使用了9M多的空间,文件系统也将占用一定空间。
当你以模块的形式编译ramdisk时,你可以在加载的时候决定ramdisk的大小。这也可以通过修改/etc/conf.modules 的选项设置来做到。
options rd rd_size=10000
或是在命令行中指定参数给ismod:
insmod rd rd_size=10000
以下是介绍如何使用这样的模块的例子:
卸载ramdisk,umount /tmp/ramdisk0 .
卸载模块(再上一节所提到的过程中自动加载), rmmod rd
加载ramdisk模块并且把它的大校设为20M,insmod rd rd_size=20000
创建一个文件系统, mke2fs /dev/ram0
加载ramdisk, mount /dev/ram0 /tmp/ramdisk0
四 RamDisk的优缺点
RamDisk就是将内存模拟为硬盘空间。无论什么时候你使用RamDisk,实际上你是在使用内存而不是硬盘。在这一点上既有优点又有缺点。最基本的,最大的优点是你是在使用内存,你所做的一切都会快一些,因为硬盘的速度较内存慢。最大的缺点是如果你改变了数据库服务器的内容并且重新启动机器时,所做的一切改动都将丢失。
 
 

免责声明:文章转载自《在linux中使用ramdisk文件系统 天高地厚》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Other】Windows搭建Syncthing&发现服务器&中继服务器实现文件跨设备自动同步Java命名规范(新手宝典)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

从零开始部署小型企业级虚拟桌面 -- Vmware Horizon View 6 For Linux VDI

环境说明 注,本套环境所用机器全部是64位的。 管理服务器载体:安装win7操作系统,通过VMware Workstation安装4台虚拟机,用作vCenter,Connection Server,Domain Control三台管理服务器,以及一台模板服务器。 虚拟桌面载体:安装ESXi操作系统,用来存放虚拟机。 终端机若干:安装Win7操作系统,用来安...

halcon案例学习之cbm_label_simple

*cbm_label_simple 程序说明:*这个示例程序展示了如何使用基于组件的匹配来定位复合对象。在这种情况下,应该在图像中找到一个标签,用户既不知道其中的组件,也不知道它们之间的关系。因此,创建组件模型需要三个操作符:* 1) gen_initial_components* 2) train_model_components* 3) create_...

Kali Linux安装

Kali Linux 安装过程参考:https://blog.csdn.net/qq_40950957/article/details/80468030 安装完成后,apt-get install 安装软件时可能会出现  Unable to locate package **** 的错误,这个问题应该是软件源的问题: 通过命令查看源信息 vi /etc/a...

dd命令详解

【基本参数详解】 dd 复制    if 源 if=/dev/zero不产生IO of 目的 of=/dev/null不产生IO bs 块大小    count 读写块的数量    iflag/oflag dd做读写测试时,要加两个参数 iflag=nocache 和 oflag=direct 参数。 没有的话dd有...

迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件

在编译程序hello world的时候我们是直接使用gcc命令进行编译的。我们编译一个程序是非常的简单的, 直接输入 gcc 然后跟上程序的名称再跟上指定生成程序的名称, 就可以很轻松的编译出可执行文件。但是大家有没有想过,如果要编译一个工程,这个工程里面有很多的源文件, 这时候我们全部使用这个命令来编译那就非常的麻烦了。为了解决编译一个工程非常繁琐这个问...

linux学习9 运维基本功-Linux常用基础命令实战应用

一、文件系统知识回顾 1、Linux文件系统: a、文件名称严格区分字符大小写 b、文件可以使用除/以外任意字符 c、文件名长度不能超过255个字符 d、以.开头的文件为隐藏文件: . :当前目录 .. :当前目录的上一级目录 2、linux目录 a、工作目录:working directory b、家目录 二、常用命令 1、pwd:printing wo...